排序方法有很多種:選擇排序,氣泡排序,歸併排序,快速排序等。 看名字都知道快速排序是目前公認的一種比較好的排序演算法。因為他速度很快,所以系統也在庫里實現這個演算法,便於我們的使用。 這就是qsort函式(全稱quicksort)。它是ansi c標準中提供的,其宣告在stdlib.h檔案中,是根據二分法寫的,其時間複雜度為n*log(n)
功能: 使用快速排序例程進行排序
標頭檔案:stdlib.h
用法: void qsort(void* base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));
引數: 1 待排序陣列,排序之後的結果仍放在這個陣列中
2 陣列中待排序元素數量
3 各元素的占用空間大小(單位為位元組)
4 指向函式的指標,用於確定排序的順序(需要使用者自定義乙個比較函式)
qsort要求提供乙個自己定義的比較函式。比較函式使得qsort通用性更好,有了比較函式qsort可以實現對陣列、字串、結構體等結構進行公升序或降序排序。
如比較函式int cmp(const void *a, const void *b) 中有兩個元素作為引數(引數的格式不能變),返回乙個int值,比較函式cmp的作用就是給qsort指明元素的大小是怎麼比較的。
//標頭檔案包含
#include#include#include#include #include #define true 1
#define false 0
#define ok 1
#define error 0
#define overflow -1
#define infeasible -2
#define maxn 100005
typedef struct student student;
int cmp(const void * a, const void * b)
int cmp2(const void *a, const void *b)
int c***(const void *a, const void *b)
int main()
switch (c)
case 2:
case 3:
} for (int i = 0; i < num; i++)
system("pause");
return 0;
}
C語言中qsort函式用法
最近在刷pat時c語言中qsort函式的使用極多,所以在這裡總結整理了一下,需要的朋友可以參考下。具體樣例 參考博文 void qsort void base,size t nmemb,size t size int compar const void const void 引數說明 c語言中的qs...
C語言中qsort函式的用法例項詳解
c語言中qsort函式的用法例項詳解 快速排序是一種用的最多的排序演算法,在c語言的標準庫中也有快速排序的函式,下面說一下詳細用法。qsort函式包含在中 qsort函式宣告如下 void qsort void base,size t nmemb,size t size int compar con...
C語言qsort用法
一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 同int型別 char word 100 sample int cmp con...