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

เปรียบเทียบ C qsort() และ C++ sort()

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 ไม่ระบุ ComplexityC++11: O(n log n) worst case, เวอร์ชันเก่า O(n²) worst case
รันช้ากว่า sort()รันเร็วกว่า qsort()
ไม่ยืดหยุ่นสำหรับข้อมูลหลากหลายยืดหยุ่น: เรียงอาร์เรย์, vector, deque และคอนเทนเนอร์อื่นๆ ได้
ไม่ปลอดภัยด้านชนิด (void pointer)ปลอดภัยกว่า ไม่ต้องใช้ void pointer