七種qsort排序方法

2021-05-22 06:47:17 字數 1847 閱讀 4570

《本文中排序都是採用的從小到大排序》

一、對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( const void *a , const void *b )

qsort(word,100,sizeof(word[0]),cmp);

三、對double型別陣列排序(特別要注意)

double in[100];

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

qsort(in,100,sizeof(in[0]),cmp);

四、對結構體一級排序

struct in

s[100]

//按照data的值從小到大將結構體排序,關於結構體內的排序關鍵資料data的型別可以很多種,參考上面的例子寫

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

qsort(s,100,sizeof(s[0]),cmp);

五、對結構體二級排序

struct in

s[100];

//按照x從小到大排序,當x相等時按照y從大到小排序

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

qsort(s,100,sizeof(s[0]),cmp);

六、對字串進行排序

struct in

s[100];

//按照結構體中字串str的字典順序排序

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

qsort(s,100,sizeof(s[0]),cmp);

自己寫乙個純字串的:(temp是二維的字串陣列,j是一共需排序的字串個數)

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

qsort(temp, j,sizeof(temp[0]),cmpstr);

七、計算幾何中求凸包的cmp

int cmp(const void *a,const void *b) //重點cmp函式,把除了1點外的所有點,旋轉角度排序

qsort()是c程式庫stdlib.h中的乙個函式,需要比較函式完成排序;

sort()是stl中的標準演算法。

#include

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

. .qsort(q,n,sizeof(int),cmp); .

. .}

qsort對一維陣列和字串陣列的排序:

#include "stdio.h"

#include "stdlib.h"

int a[100];

int cmp(const void *p,const void *q)

int main()

int main()return 0;

}#include "stdio.h"

#include "stdlib.h"

#include "string.h"

char a[20005][25];

{int n,m,i,j;

while(1)

{scanf("%d%d",&n,&m);

if(n==0&&m==0) break;

for(i=0;i

七種qsort排序方法

七種qsort排序方法 本文中排序都是採用的從小到大排序 一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 同int型別 cha...

七種qsort排序方法

qsort 功 能 使用快速排序例程進行排序 要包含標頭檔案 include 用 法 void qsort void base,int nelem,int width,int fcmp const void const void 各引數 1 待排序陣列首位址 2 陣列中待排序元素數量 3 各元素的占...

七種qsort排序方法

七種qsort排序方法 本文中排序都是採用的從小到大排序 一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 同int型別 cha...