qsort快速排序

2021-07-07 03:57:38 字數 1889 閱讀 4934

函式原型:void qsort (void *base ,size_t  num,size_t  width,int(_cdecl  * compare)(const  void*,const  void *));

標頭檔案:stdlib.h

size_t  num:陣列中待排序元素的數量

size_t  width:各元素占用空間大小

int(_cdecl  * compare)(const  void*,const  void *):指向函式的指標,用於確定排序順序

對快速排序的應用,主要是比較函式的編寫

一、對int型陣列排序

int cmp(const void *a,const void *b)//void型別的指標可以指向任意型別

**示例:

#include#includeint cmp(const void *a,const void *b)

int main()

二、對double型陣列排序

(與int型排序類似)

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

三、對char型陣列的排序

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

**示例:

#include#includeint cmp(const void *a,const void *b)

int main()

四、對結構體一級排序

struct  tt[100];

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

**示例:

#include#includestruct  tt[100];

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

int main()

五、對結構體二級排序

(若x不同,則按照x排序;若x相同時,按照y排序)

#include#includestruct  tt[100];

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

int main()

六、對結構體中的字串排序

(相當於二維字元陣列)

struct  t

s[100];

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

**示例:

#include#include#includestruct  t

s[100];

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

int main()

七、對二維字元陣列排序

char s[2001][1001];

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

**示例:

#include #include #include char s[2001][1001];

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

int main(){

int i,n;

scanf("%d",&n);

getchar();//避免換行符被字串接收

for(i=0;i

qsort 快速排序

qsort函式是ansi c標準中提供的,其宣告在stdlib.h檔案中,是根據二分法寫的,其時間複雜度為n log n 其結構為 void qsort void base,size t nelem,size t width,int comp const void const void 其中 bas...

qsort 快速排序

cpp view plain copy print?void qsort void base,size t nmemb,size t size,int compare const void const void 函式原型在中找到 html view plain copy print?base 指向陣...

qsort快速排序

qsortc語言自帶的快速排序,今天來玩玩,直接看 2.陣列中待排序元素數量 3.各元素的占用空間大小 4.指向函式的指標,用於確定排序的順序 include include qsort排序結構體 typedef struct node node int compinc1 const void a,...