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