在進行c/c++程式設計的時候,c/c++的庫函式中已經提供了快速排序法的函式qsort,我們只需要呼叫它就可以了。
qsort函式在標頭檔案stdlib.h中。要使用qsort函式,就必須加#include(對c語言來說)或加入#include(對c++來說)。
下面是7種快排呼叫方法(注意下面的都是從小到大排序) 注意c語言是qsort c++是sort
一、對int型別陣列排序
比較函式:(寫在main函式前面)
int comp(const void *a,const void *b)
在main函式裡宣告乙個陣列:
int num[100];
在對陣列元素賦值後呼叫qsort函式:
qsort(num,100,sizeof(num[0]),comp);
二、對char型別陣列排序(同int型別)
比較函式:(寫在main函式前面)
int comp(const void *a,const void *b)
在main函式裡宣告乙個陣列:
char word[100];
在對陣列元素賦值後呼叫qsort函式:
qsort(word,100,sizeof(word[0]),comp);
呼叫之後就完成了對陣列的排序。
三、對double型別陣列排序(特別要注意)
比較函式:(寫在main函式前面)
int comp(const void *a,const void *b)
在main函式裡宣告乙個陣列:
double num[100];
在對陣列元素賦值後呼叫qsort函式:
qsort(num,100,sizeof(num[0]),comp);
呼叫之後就完成了對陣列的排序。
四、對結構體一級排序
//另一種簡單的演算法c++的:
struct in
c++呼叫
sort(s,s+100,comp);
按照data的值從小到大將結構體排序。
關於結構體內的排序關鍵資料data的型別可以很多種,參考上面的例子寫。
比較函式:
int comp(const void *a,const void *b)
呼叫qsort:
qsort(s,100,sizeof(s[0]),comp); );
五、對結構體二級排序
struct ins[100];
比較函式:(按照x從小到大排序,當x相等時按照y從大到小排序)
int comp(const void *a,const void *b)
else
}呼叫qsort:
qsort(s,100,sizeof(s[0]),comp); );
六、對字串進行排序
struct ins[100];
比較函式:(按照結構體中字串str的字典順序排序)
int comp(const void *a,const void *b)
呼叫qsort:
qsort(s,100,sizeof(s[0]),comp); );
七、計算幾何中求凸包的comp
int comp(const void *a,const void *b)
else if(!calc(*c,*d,p[1])&&
dis(c->x,c->y,p[1].x,p[1].y)<
dis(d->x,d->y,p[1].x,p[1].y))
else
}注:使用vector時,qsort(num.begin(),num.sizeof(),sizeof(num[0]),comp);
稍微修改comp函式,可以按增序排列
C C 呼叫快排的模板
在進行c c 程式設計的時候,c c 的庫函式中已經提供了快速排序法的函式qsort,我們只需要呼叫它就可以了。qsort函式在標頭檔案stdlib.h中。要使用qsort函式,就必須加 include 對c語言來說 或加入 include 對c 來說 下面是7種快排呼叫方法 注意下面的都是從小到大...
C 中快排模板呼叫
在現在的各種內部排序演算法中快速排序被認為是效率最高的排序演算法 快速排序原理 因此在c 的庫函式中已經封裝了快排函式。所以在平時的程式設計,我們可以直接呼叫這已庫函式,而不必自己去實現。這樣一方面由快排保證了程式的效率,另一方面也保證程式的正確性和可讀性。呼叫c 快排的庫函式的格式 假設待排序的陣...
快排模板2020 7 3
時間限制 1 sec 記憶體限制 64 mb 提交狀態 題目描述 某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 109 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。輸入第1行是整數n,表示自然數的個數 ...