Sorting Array
รชณิกา ใช้ฮวดเจริญ 630710670
Sorting Array คืออะไร
"Sort" คือการเรียงลำดับ "Sorting Array" คือ การจัดเรียงข้อมูลที่อยู่ในอาเรย์ตามลำดับ ไม่ว่าจะเป็นลำดับตามตัวอักษรหรือตัวเลข โดยสามารถเรียงข้อมูลได้ทั้งแบบจากน้อยไปหามากหรือจากมากไปหาน้อย
Sorting array in 'PHP'
ในภาษา PHP จะมีฟังก์ชันของ sortinเg array ทั้งหมด 6 ฟังก์ชัน ได้แก่
sort()rsort()asort()ksort()arsort()krsort()
เปรียบเทียบทั้ง 6 ฟังก์ชันกับภาษา Java/C/Python
sort()
เป็นฟังก์ชันที่ใช้เรียง array ตามลำดับจากน้อยไปหามาก (ascending order) โดยจะจัดเรียงข้อมูลในอาเรย์ตามลำดับตัวเลขหรือตามลำดับตัวอักษร
ผลลัพธ์ที่ได้คือ ["Khao Manee", "Konja", "Siamese"]
จากตัวอย่างจะเห็นได้ชัดว่า PHP, Java และ Python มีฟังก์ชัน sort() ที่สามารถใช้ได้โดยตรง จะมีเพียงภาษา C เท่านั้นที่ไม่มีฟังก์ชันนี้ จำเป็นที่จะต้องสร้างฟังก์ชันที่เรียงจากน้อยไปมากเอง (จากตัวอย่างคือ compareStrings) และจะใช้qsort() ที่เป็นฟังก์ชันของภาษา C คู่ไปกับฟังก์ชันที่เราได้สร้างขึ้นเพื่องเรียงข้อมูลจากน้อยไปมาก
rsort()
มีการเรียงลำดับเหมือนกับ sort() แต่จะเรียงจากมากไปหาน้อย (descending order) ตามลำดับ ทั้งตัวเลขและตัวอักษร
ผลลัพธ์ที่ได้คือ ["Siamese", "Konja", "Khao Manee"]
จะเห็นได้ชัดว่าฟังก์ชัน rsort() จะมีเพียง PHP เท่านั้น
Java - จะใช้
sort()เหมือนเดิม แต่จะมีการเพิ่มCollections.reverseOrder()เพื่อเปลี่ยนเป็นเรียงจากมากไปน้อยC - จำเป็นต้องสร้างฟังก์ชันเพื่อเรียงข้อมูลจากมากไปน้อย จากตัวอย่างคือ compareStringsDescending และใช้ฟังก์ชัน
qsort()ที่เป็นฟังก์ชันของภาษา C คู่ไปกับฟังก์ชันที่เราได้สร้างขึ้นPython - จะใช้
sort()เหมือนเดิมเช่นกัน แต่จะมีการเพิ่ม reverse=True เพื่อเปลี่ยนเป็นเรียงจากมากไปน้อย
asort()
ใช้สำหรับจัดเรียงข้อมูลในอาเรย์โดยเรียงลำดับจากน้อยไปมาก (ascending order) ตาม'ค่า (Value)' และ 'คีย์ (Key)' ของอาเรย์จะไม่ถูกเปลี่ยนแปลง ซึ่งจะต่างกับ sort() และ rsort() ที่จัดเรียงตามค่า(Value) แต่ไม่สนใจคีย์(Key)
ผลลัพธ์ที่ได้คือ ["5 => Khao Manee", "10 => Konja", "7 => Siamese"] เรียงลำดับน้อยไปมากตามค่า(Value)
Java - ไม่มีฟังก์ชัน
asort()โดยตรง จำเป็นต้องสร้าง HashMap เพื่อใช้ฟังก์ชันcomparingByKey()เพื่อเรียงลำดับจากน้อยไปมากตามคีย์(Key)C - ไม่มีฟังก์ชัน
asort()โดยตรงเช่นกัน ต้องทำเหมือนตัวอย่างโค้ดsort()ของภาษา C ที่สร้างฟังก์ชันขึ้นมาเอง และใช้strcmp()ฟังก์ชันที่เราสร้างเพื่อให้เรียงลำดับตามคค่า(Value)Python - ไม่มีฟังก์ชัน
asort()โดยตรงเช่นกัน จะใช้เป็น dictionary และใช้sortedกับlambda x: x[1]ซึ่งระบุให้เรียงตามค่าในตำแหน่งที่ 1 (Value) เพื่อเรียงลำดับตามค่า(Value)
ksort()
ทำงานเหมือนกับ rsort() แต่จะเป็นการเรียงตามคีย์(Key) จากน้อยไปมาก
ผลลัพธ์ที่ได้คือ ["5 => Khao Manee", "7 => Siamese", "10 => Konja"] เรียงลำดับน้อยไปมากตามคีย์(Key)
Java - ไม่มีฟังก์ชัน
ksort()แต่จะเป็นการใช้แทน TreeMap เพื่อเรียงจากน้อยไปมากตามคีย์C - ไม่มีฟังก์ชัน
ksort()เช่นกัน ต้องทำเหมือนตัวอย่างโค้ดasort()ของภาษา C ที่สร้างฟังก์ชันขึ้นมาเองแต่เปลี่ยนจากเรียงตามค่า(Value) เป็นตามคีย์(Key) และใช้strcmp()ฟังก์ชันที่เราสร้างเพื่อให้เรียงลำดับตามคีย์(Key)Python - ไม่มีฟังก์ชัน
asort()โดยตรงเช่นกัน จะใช้เป็น dictionary และใช้sorted()พื่อเรียงลำดับตามคีย์(Key)
arsort()
ทำงานเหมือน rsort() ที่เรียงลำดับตามค่า(Value) แต่จะเรียงจากมากไปน้อย
ผลลัพธ์ที่ได้คือ ["7 => Siamese", "10 => Konja", "5 => Khao Manee"] เรียงลำดับมากไปน้อยตามค่า(Value)
Java - จะใช้
comparingByValue(Comparator.reverseOrder())เพื่อเรียงจากมากไปน้อยตามค่า(Value)C - ใช้
qsort()ร่วมกับฟังก์ชันที่สร้างขึ้นเพื่อเรียงลำดับจากมากไปน้อยตามค่า(Value)Python - ใช้
sorted()กับkey=lambda x: x[1]และreverse=Trueเพื่อเรียงจากมากไปน้อยตามค่า(Value)
krsort()
ทำงานเหมือน arsort() แต่จะที่เรียงลำดับตามคีย์(Key) จากมากไปน้อย
ผลลัพธ์ที่ได้คือ ["10 => Konja", "7 => Siamese", "5 => Khao Manee"] เรียงลำดับมากไปน้อยตามค่า(Value)
Java - ใช้
comparingByKey(Comparator.reverseOrder())เพื่อเรียงลำดับตามคีย์จากมากไปน้อยC - ใช้
qsort()กับฟังก์ชันที่สร้างขึ้นเพื่อเรียงลำดับจากมากไปน้อยตามคีย์(Key)Python - ใช้
sorted()ร่วมกับkey=lambda x: x[0]และreverse=Trueเพื่อเรียงจากมากไปน้อยตามคีย์(Key)
Presentation
Clip
Reference
Spalinux. (2013, March 20). Using PHP sort functions. Retrieved October 15, 2024, from https://spalinux.com/2013/03/using-php-sort-functions
W3Schools. (n.d.). PHP array sort functions. Retrieved October 15, 2024, from https://www.w3schools.com/php/php_arrays_sort.asp
CodeGym. (n.d.). การจัดเรียงข้อมูลใน Java. Retrieved October 15, 2024, from https://codegym.cc/th/groups/posts/th.1107.-java
Skblackcat. (2020, June 20). การจัดเรียงข้อมูลใน list ด้วย Python. Medium. Retrieved October 15, 2024, from https://medium.com/@skblackcat/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%88%E0%B8%B1%E0%B8%94%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B9%83%E0%B8%99-list-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-python-d1c14db8e5f7
CodingGun. (n.d.). Array in Python. Retrieved October 15, 2024, from https://codinggun.com/python/array/
Expert Programming Tutor. (n.d.). Insertion sort in C. Retrieved October 15, 2024, from https://expert-programming-tutor.com/tutorial/article/KC0010064002_Insertion_Sort_in_C.php
Last updated