c語言知識點 qsort快速排序函式的使用

2021-08-08 23:53:39 字數 685 閱讀 6110

qsort是c語言自帶的快速排序的函式,它可以對任意資料型別的陣列進行排序。我們只需要編寫相鄰兩個元素的排列方式即可。

main.cpp:

#include using namespace std;

int compare(const void* y1, const void *y2);//相鄰兩個元素排列函式

int main()

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

system("pause");

return 0;

}int compare(const void* y1, const void *y2)//傳遞陣列中的兩個元素位址(qsort函式自動完成)

qsort根據compare的返回值排列規則:

返回值 -1:兩個元素不交換 (理解為前乙個減後乙個 = -1,前乙個比後乙個小)

返回值 0 :兩個元素不交換

返回值 1 :兩個元素交換

(理解為前乙個減後乙個 = 1,前乙個比後乙個大)

可以看出:qsort預設是進行公升序排列的,如果需要降序,只需要在compare返回值進行相反數操作即可

執行結果:

C語言快速排序函式qsort

標頭檔案 include 函式原型 void qsort void base,size t nmemb,size t size,int compar const void const void 引數介紹 引數size 表示該陣列中每個元素的大小 位元組數 通常sizeof int 引數 compar...

C語言快速排序函式qsort

qsor函式的結構 qsort nums,numssize,sizeof int cmp nums 陣列的首位址 numssize 陣列中的元素個數 sizeof of 陣列中每個元素的位元組長度 cmp 排序方式 關於cmp有兩種形式 1.遞增 int cmp const void a,const...

C語言快速排序函式 qsort

include include include include typedef struct inin typedef struct char char 對字串排序函式 int ptr 7 const void a,const void b 結構體一級排序函式 int ptr 5 const voi...