標頭檔案:algorithm
對於(整數/字元)陣列進行比較時,可直接通過sort(a,a+n)或sort(a.begin(),a.end())進行排序,預設公升序排列,須要高速實現降序時,有三種方案
1.反轉公升序陣列(reserve函式)
2.反向迭代sort(a.rend(),a.rbegin())
3.借助c++庫函式,greater《型別》()降序 less《型別》()公升序 標頭檔案:functional
當對結構體進行排序時,須要自己寫比較函式,曾了解qsort的都知道,c中的qsort排序函式寫起來比較麻煩,由於傳入的型別是const void * ,函式內部還須要進行強制轉換,而sort僅僅需正常傳入資料進行比較就可以。
eg:
#include#include#include#include#include#includeusing namespace std;
typedef struct nodenode;
node s[10];\
int cmp(node a,node b)
{if(a.x!=b.x)return a.x
當對字串陣列進行排序時,能夠利用c中的strcmp返回自己定義函式結果。
對於string,其能夠如同陣列一樣使用,但不能利用c字串函式,可使用c++標準庫字串函式。
除了,結構體,字串陣列,sort函式都能夠利用c++標準函式實現高速排序,包含pair,vector等型別,未來掌握的更加完好了再繼續本文總結。
補:當我們從0到n-1向陣列中輸入資料時,排序時sort(a,a+n),當我們須要對當中的部分排序時,僅僅須要sort(a+x,a+n),x>=0(0時是全排序)排序後的結果將以a+x為起點存入。
當我們從1到n向陣列中輸入資料時,排序時sort(a+1,a+n+1),當我們須要對當中的部分排序時,僅僅須要sort(a+x,a+n+1),x>=1,排序後的結果將以a+x為起點存入。
c sort函式總結
sort函式經常在演算法題中被使用,這裡對其用法進行總結 一 需要使用標頭檔案 include和using namespace std 二 語法 sort begin,end,cmp cmp引數可以省略,預設按公升序排序。1 begin是要排序的陣列的起始位址。2 end是最後一位要排序的位址。3 ...
c sort函式的使用
需要標頭檔案 語法描述 sort begin,end,cmp cmp引數可以沒有,如果沒有預設非降序排序。1.以int為例的基本資料型別的sort使用 include include includeusing namespace std int main 預設公升序 sort a,a 5 for i...
C sort函式的使用
我們在程式設計中經常會遇到排序的問題,排序演算法有很多,如氣泡排序,快速排序等,但通常我們只想得到排序的結果,而不用注重排序的過程,這時可以使用c 的sort函式,簡化排序過程,更注重 邏輯。標頭檔案 include using namespace std 函式格式 cmp函式的編寫 按結構體屬性大...