在這里,我們將看到C語言中的qsort()和C++中的sort()之間的區別。
C語言提供了qsort()函數,可用于對數組進行排序。函數的參數和語法如下所示。
void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));
登錄后復制
這個函數接受數組的基地址、數組的元素數量、數組中每個項的大小以及一個比較函數。
C++提供了sort()函數,它位于C++ STL中。其參數和語法如下所示。
void sort(T first, T last, Compare c);
登錄后復制
這里不保證重復元素的順序被保留。為了實現這個目的,我們可以使用C++ STL提供的stable_sort。
qsort()和sort()之間的區別
C中的qsort() | C++中的sort() |
---|---|
它使用快速排序算法。 | 它使用introsort。這是一種混合排序算法。不同的實現使用不同的算法。GNU C++ STL使用三部分混合排序。Introsort、Quicksort和Insertion Sort。 |
C標準沒有提到 | 這個問題。 |
這個排序算法的復雜性。
sort()
sort()
以上就是C qsort()與C++ sort()的區別的詳細內容,更多請關注www.xfxf.net其它相關文章!