當並演算法具體解釋請見點我
想起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了~
所以自己總結了一下,首先看sort函式見下表:
函式名 功能描寫敘述
sort 對給定區間全部元素進行排序
stable_sort 對給定區間全部元素進行穩定排序
partial_sort 對給定區間全部元素部分排序
partial_sort_copy 對給定區間複製並排序
nth_element 找出給定區間的某個位置相應的元素
is_sorted 推斷乙個區間是否已經排好序
partition 使得符合某個條件的元素放在前面
stable_partition 相對穩定的使得符合某個條件的元素放在前面
要使用此函式僅僅需用#include sort就可以使用,語法描寫敘述為:
sort(begin,end),表示乙個範圍,比如:
int _tmain(int argc, _tchar* argv)
,i;for(i=0;i<20;i++)
cout}int _tmain(int argc, _tchar* argv)
,i;for(i=0;i<20;i++)
cout<」。
class compare
;bool operator () (int num1,int num2)}};
接下來使用 sort(begin,end,compare(asc)實現公升序,sort(begin,end,compare(desc)實現降序。
主函式為:
int main()
,i;for(i=0;i<20;i++)
cout<」等比較運算子),全然不是必需自己寫乙個類出來。標準庫里已經有現成的了,就在functional裡,include進來即可了。functional提供了一堆基於模板的比較函式物件。它們是(看名字就知道意思了):equal_to、not_equal_to、greater、greater_equal、less、less_equal。對於這個問題來說,greater和less就足夠了,直接拿過來用:
公升序:sort(begin,end,less());
降序:sort(begin,end,greater()).
int _tmain(int argc, _tchar* argv)
,i;for(i=0;i<20;i++)
cout<());
for(i=0;i<20;i++)
cout< < = 時,分別返回正值 負值 零 (或者相反)。
使用a b 時要強制轉換型別,從void * 轉換回應有的型別後,進行操作。
陣列下標從零開始,個數為n, 下標0-(n-1)。
例項:int compare(const void *a,const void *b)
int main()
,i;for(i=0;i<20;i++)
cout《二維字元陣列排序
#include #include #include using namespace std;
struct data
str[100];
bool cmp(const data &elem1, const data &elem2)
int main()
sort(str, str+n, cmp);
for (i=0; i
**二:
bool cmp(const char *elem1, const char *elem2)
int main()
; int n, i;
while (cin>>n)
sort(pstr, pstr+n, cmp);
for (i=0; i
qsort()
#include #include using namespace std;
int cmp(const void *a,const void *b)
struct teltel[10];
int main()
c 中sort 及qsort 的用法總結
當並演算法詳解請見點我 想起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 pa...
c 中sort 及qsort 的用法總結
想起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對...
c 中sort和qsort的比較
例如 int cmp const void a,const void b int a 5 qsort a,5,sizeof int cmp void sort 待排序陣列首位址,待排序陣列結束位址,排序的方法 其中,排序的方法可以不寫,這樣預設為從小到大。例如 從小到大 bool cmp const...