雜記之函式qsort的使用

2021-06-11 20:24:02 字數 1194 閱讀 2534

qsort函式簡介

功 能: 使用快速排序例程進行排序

用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

引數:1 待排序

陣列首位址 2 陣列中待排序元素數量 3 各元素的占用空間大小 4 指向函式的

指標,用於確定排序的順序

使用qsort()排序並 用 bsearch()搜尋是乙個比較常用的組合,使用方便快捷。

qsort 的函式原型是void __cdecl qsort (void *base,size_t num,size_t width,

int (__cdecl *comp)(const void *,const void*))

其中base是排序的乙個集合陣列,num是這個陣列元素的個數,

width是乙個元素的大小,compare_integers是乙個比較函式。

比如:對乙個長為1000的

陣列進行排序時,int a[1000]; 那麼base應為a,num應為 1000,

width應為 sizeof(int),compare_integers函式隨自己的命名。

qsort(a, 1000, sizeof(int),  compare_integers);

其中compare_integers函式應寫為:

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

或者:qsort(array, n_values, sizeof(int), compare_integers);

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

上面是由小到大排序,return *(int *)b-*(int *)a; 為由大到小排序。

是對乙個

二維陣列的進行排序:

int a[1000][2]; 其中按照a[0]的大小進行乙個整體的排序,其中a[1]必須和a[0]一起移動交換。

qsort(a, 1000,  sizeof(int)*2,  comp);

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

qsort 函式的使用

該函式是我在看x264 中關於參考幀列表的排序接觸到的,總結於此,以作備忘。功 能 使用快速排序例程進行排序 原 型 void qsort void base,int nelem,int width,int fcmp const void const void 2.陣列中待排序元素數量 3.各元素的...

C 使用qsort函式

qsort是乙個需要配合compare函式來使用的,用來排序的函式。使用順序為 qsort 待排序陣列首位址,陣列中待排序元素數量 各元素的占用空間大小 指向函式的指標 例如qsort stu1,size1,sizeof elemtype cmp stu1是陣列,size是數量,cmp是個函式,co...

qsort函式和bsearch函式的使用

1.qsort排序 qsort example include include int values int compare const void a,const void b int main output 10 20 25 40 90 100 2.bsearch查詢 bsearch exampl...