第一次嘗試
#include
#include
#include
#define max 10
#define max_c 4
//void cmp_int(const void* _a,const void* _b)
//上面為規範寫法,下面是我理解覺得可以通過編譯的
//整型
intcmp_int
(int
* a,
int* b)
//浮點型
intcmp_double
(double
* a,
double
* b)
//字元型
intcmp_char
(char
* a,
char
* b)
//字串型
intcmp_str
(char
(* a)
,char
(* b)
)int
main()
;qsort
(arr_int, max,
sizeof
(arr_int[0]
), cmp_int)
;for
(int i =
0; i < max; i++
)printf
("\n");
//浮點型
double arr_double[max]=;
qsort
(arr_double, max,
sizeof
(arr_double[0]
), cmp_double)
;for
(int i =
0; i < max; i++
)printf
("\n");
//字元型
char arr_char[max]=;
qsort
(arr_char, max,
sizeof
(arr_char[0]
), cmp_char)
;for
(int i =
0; i < max; i++
)printf
("\n");
//字串型
char arr_str[max_c]
[max_c]=;
qsort
(arr_str, max_c,
sizeof
(arr_str[0]
), cmp_str)
;for
(int i =
0; i < max_c; i++
)printf
("\n");
return0;
}
練習使用庫函式快速排序——qsort
void
qsort
(void
* base,size_t num,size_t width,
int(__cdecl*compare)
(const
void*,
const
void*)
);
待排序陣列,排序之後的結果仍放在這個陣列中
陣列中待排序元素數量
各元素的占用空間大小(單位為位元組)
指向函式的指標,用於確定排序的順序(需要使用者自定義乙個比較函式)
qsort 要求提供乙個自己定義的比較函式。比較函式使得qsort通用性更好,有了比較函式,qsort 可以實現對陣列、字串、結構體等結構進行公升序或降序排序,如比較函式:
int
cmp(
const
void
*a,const
void
*b)
這其中有兩個元素作為引數(引數的格式不能變),返回乙個int
值,比較函式 cmp 的作用就是給 qsort 指明元素的大小是怎麼比較的。
發表於 2020-11-16 20:35
c語言qsort的使用及練習
三.模擬實現 routine required header compatibility qsortandansi,win 95,win nt 用法 void qsort void base,size t num,size t width,int cdecl compare const void e...
qsort 函式的使用
該函式是我在看x264 中關於參考幀列表的排序接觸到的,總結於此,以作備忘。功 能 使用快速排序例程進行排序 原 型 void qsort void base,int nelem,int width,int fcmp const void const void 2.陣列中待排序元素數量 3.各元素的...
qsort使用方法
在c 中qsort 排序函式的使用 qsort函式應用大全 七種qsort排序方法 本文中排序都是採用的從小到大排序 一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num ...