Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การเปรียบเทียบ Sorting Methods ในโครงสร้างข้อมูล


มีเทคนิคการจัดเรียง 200+ แบบ จะดูบางตัว บางแบบเป็น Comparison-based บางแบบ Non-comparison-based

Comparison-based Sorting

Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quicksort, Heap Sort – เปรียบเทียบค่าแล้ววางตำแหน่ง

Time Complexity

Analysis Type Bubble Sort Selection Sort Insertion Sort Merge Sort Quick Sort Heap Sort
Best Case O(n²) O(n²) O(n) O(n log n) O(n log n) O(n log n)
Average Case O(n²) O(n²) O(n²) O(n log n) O(n log n) O(n log n)
Worst Case O(n²) O(n²) O(n²) O(n log n) O(n²) O(n log n)
แก้ไข: ต้นฉบับมีข้อผิดพลาด Merge/Quick/Heap Sort Best Case เขียน O(log n) ผิด – ควรเป็น O(n log n)

Non-comparison-based Sorting

Radix Sort, Counting Sort, Bucket Sort – ไม่เปรียบเทียบค่าระหว่างกัน

Time Complexity

Analysis Type Radix Sort (k=หลักสูงสุด) Counting Sort (k=ขนาด Count Array) Bucket Sort (k=จำนวน Buckets)
Best Case O(nk) O(n + k) O(n + k)
Average Case O(nk) O(n + k) O(n + k)
Worst Case O(nk) O(n + k) O(n²)

การจัดประเภทเพิ่มเติม

  • In-place Sorting – ไม่ต้องการพื้นที่เพิ่ม: Quicksort, Heapsort
  • Out-place Sorting – ต้องการพื้นที่เพิ่ม: Merge Sort
  • Online Sorting – รับข้อมูลใหม่ระหว่างจัดเรียงได้: Insertion Sort
  • Offline Sorting – ต้องมีข้อมูลครบก่อนจัดเรียง