C 中sort與qsort函式簡介

2021-08-02 14:35:02 字數 1252 閱讀 3372

c++中自帶了一些排序函式,其中stl的sort();qsort()用的較多

sort:複雜度為n*log2(n)

標頭檔案#include

原型:

template<classrandomaccessiterator>

voidsort ( randomaccessiterator first, randomaccessiterator last );

template<classrandomaccessiterator,classcompare>

voidsort ( randomaccessiterator first, randomaccessiterator last, compare comp );

bool compare(int a,int b)

qsort:

原型:void qsort(void *base, int nelem, unsigned int width, int ( * pfcompare)( const void *, const void *));

引數分別是陣列指標,元素個數,

每個元素大小(sizeof),比較函式

比較函式自己定義,如 int compare(const void *a,const void *b) 。

若*a排在*b前,返回負值

*a排在*b前後都行,返回0

*a排在*b後面,返回正值

顯然,返回值並不依賴大小,還依賴排序的要求;

示例:

#include 

#include

#include

using namespace std;

int compare(const void *a, const void *b)

int main()

; qsort(a, 10, sizeof(int), compare);

for (int i = 0; i < 10; i++)

cout << a[i] << " " ;

return 0;

}

qsort函式 sort函式

先說明一下qsort和sort,只能對連續記憶體的資料進行排序,像鍊錶這樣的結構是無法排序的。首先說一下,qsort qsort 基本快速排序的方法,每次把陣列分成兩部分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本快速排序的效率較低,且不穩定 整合在c語言庫函式裡面的的qsort函式,使用...

qsort函式 sort函式

先說明一下qsort和sort,只能對連續記憶體的資料進行排序,像鍊錶這樣的結構是無法排序的。首先說一下,qsort qsort 基本快速排序的方法,每次把陣列分成兩部分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本快速排序的效率較低,且不穩定 整合在c語言庫函式裡面的的qsort函式,使用...

qsort函式 sort函式

qsort函式 sort函式 精心整理篇 先說明一下qsort和sort,只能對連續記憶體的資料進行排序,像鍊錶這樣的結構是無法排序的。首先說一下,qsort qsort 基本快速排序的方法,每次把陣列分成兩部分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本快速排序的效率較低,且不穩定 整合...