C มี qsort() สำหรับเรียงลำดับอาร์เรย์ ในขณะที่ C++ มี sort() ใน STL
qsort() ใน C
void qsort(void *base, size_t num, size_t size, int (*comparator)(const void*, const void*));
sort() ใน C++
void sort(T first, T last, Compare c);
ตารางเปรียบเทียบ
| qsort() (C) | sort() (C++) |
|---|---|
| ใช้อัลกอริทึม Quicksort | ใช้ Introsort (Hybrid: Introsort, Quicksort, Insertion Sort) |
| มาตรฐาน C ไม่ระบุ Complexity | C++11: O(n log n) worst case, เวอร์ชันเก่า O(n²) worst case |
| รันช้ากว่า sort() | รันเร็วกว่า qsort() |
| ไม่ยืดหยุ่นสำหรับข้อมูลหลากหลาย | ยืดหยุ่น: เรียงอาร์เรย์, vector, deque และคอนเทนเนอร์อื่นๆ ได้ |
| ไม่ปลอดภัยด้านชนิด (void pointer) | ปลอดภัยกว่า ไม่ต้องใช้ void pointer |