C++ sort()和qsort區(qū)別

c++
小樊
82
2024-07-18 14:39:25

  1. sort() 是C++標(biāo)準(zhǔn)庫(kù)中提供的排序函數(shù),而qsort() 是C標(biāo)準(zhǔn)庫(kù)中提供的排序函數(shù)。

  2. sort() 可以用于任何支持隨機(jī)訪(fǎng)問(wèn)迭代器的容器,例如vector, array, list等,而qsort() 只能用于C語(yǔ)言中的數(shù)組。

  3. sort() 使用的是模板函數(shù),可以根據(jù)傳入的數(shù)據(jù)類(lèi)型進(jìn)行排序,而qsort() 需要自己實(shí)現(xiàn)比較函數(shù)。

  4. sort() 使用的是快速排序算法,時(shí)間復(fù)雜度為O(n log n),qsort() 使用的是快速排序或者歸并排序算法,時(shí)間復(fù)雜度也為O(n log n)。

  5. sort() 是面向?qū)ο蟮呐判蚝瘮?shù),支持函數(shù)對(duì)象的重載,可以實(shí)現(xiàn)自定義的比較規(guī)則,而qsort() 是面向過(guò)程的函數(shù),需要傳入比較函數(shù)指針。

0