一、函式原型
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 用於確定排序的順序 排序方法有很多種,選擇排序,氣泡排序,歸併排序,快速排序等。看名字都知道快速排序 ...