qsort及其用法

2021-05-21 15:45:53 字數 2434 閱讀 5381

一、函式原型

void qsort(void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void

*elem2 ) );

大概的意思是,第乙個引數指明了要排序的陣列(比如:程式中的

num),第二個引數給出了陣列的大小(

qsort

沒有足夠的智力預知你傳給它的陣列的實際大小),第三個引數給出了陣列中每個元素以位元組為單位的大小。最後那個長長的傢伙,給出了排序時比較元素的方式

..

再給乙個例子:

int a[n];

qsort(a,n,sizeof(int),comp); //

從小到大排序

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

二、qsort用法

1、對int

型別陣列排序

int num[100];

sample:

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

qsort(num,100,sizeof(num[0]),cmp); 2

、對char

型別陣列排序(同

int型別)

char word[100];

sample:

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

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

、對double

型別陣列排序(特別要注意)

double in[100];

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

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

、對結構體一級排序

struct in

s[100] //

按照data

的值從小到大將結構體排序

,關於結構體內的排序關鍵資料

data

的型別可以很多種,參考上面的例子寫

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

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

、對結構體二級排序

struct in

s[100]; //

按照x從小到大排序,當

x相等時按照

y從大到小排序

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

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

、對字串進行排序

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);

7、計算幾何中求凸包的

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

sort 函式與qsort 函式及其用法

sort 函式是c 中的排序函式其標頭檔案為 include標頭檔案 qsort 是c中的排序函式,其標頭檔案為 include 1 qsort 六類qsort排序方法 qsort函式很好用,但有時不太會用比如按結構體一級排序 二級排序 字串排序等。函式原型 void qsort void base...

qsort函式用法

qsort 功 能 使用快速排序例程進行排序 用 法 void qsort void base,int nelem,int width,int fcmp const void const void 各引數 1 待排序陣列首位址 2 陣列中待排序元素數量 3 各元素的占用空間大小 4 指向函式的指標,...

qsort函式用法

qsort 功 能 使用快速排序例程進行排序 用 法 void qsort void base,int nelem,int width,int fcmp const void const void 用於確定排序的順序 排序方法有很多種,選擇排序,氣泡排序,歸併排序,快速排序等。看名字都知道快速排序 ...