C語言快速排序函式qsort

2021-10-03 02:20:07 字數 1451 閱讀 5179

標頭檔案:#include

函式原型:

void

qsort

(void

*base,

size_t nmemb,

size_t size,

int(

*compar)

(const

void*,

const

void*)

);

引數介紹:

引數size:

表示該陣列中每個元素的大小(位元組數),通常sizeof(int)

引數(*compar)(const void *, const void *) :

為指向比較函式的函式指標,決定了排序的順序。(預設從小到大)

用法示例

輸入:

第一行輸入乙個n表示元素的個數

第二行輸入n個數,用空隔開

輸出:輸出n個數從小到大排序的結果

#include

#include

int a[

10005];

intcmp

(const

void

* a,

const

void

* b)

intmain()

return0;

}

函式預設從小到大排序,如果要求從大到小怎麼辦???

做法:只需將cmp函式返回值取反即可

int

cmp(

const

void

* a,

const

void

* b)

不僅如此起始sqort()還可以直接在選定的區間以內排序

比如我們實現將a[1]~a[9]之間的元素從小到大排序,只需將qsort()改為

qsort

(a+1

,n-2

,sizeof

(int

), cmp)

;

qsort 也適用浮點型資料

#include

#include

float a[

10005];

intcmp

(const

void

* a,

const

void

* b)

intmain()

return0;

}

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...

qsort 函式之快速排序

qsort 函式是ansi c標準中提供的,在標頭檔案中 是根據二分法寫的,時間複雜度為 n log n 原型 void qsort void base,size t nelem,size t width,cmp base 為要排序的陣列 nelem 為排序陣列的長度 width 為陣列元素的大小 ...