標頭檔案:#include< algorithm >
using namespace std;
語法:sort(start,end,cmp)
注意:第三個引數cmp公升序情況下可以不寫,降序情況需要多呼叫乙個函式
例如:
對a[10]陣列公升序排列
#include
#include
using namespace std;
intmain()
;sort
(a,a+10)
;for
(int i=
0;i<
10;i++
)printf
("%d "
,a[i]);
return0;
}
執行結果:
對a[10]陣列降序排列(降序需要用到第三個引數cmp,多寫乙個函式)
#include
#include
using namespace std;
bool cmp
(int a,
int b)
intmain()
;sort
(a,a+
10,cmp)
;for
(int i=
0;i<
10;i++
)printf
("%d "
,a[i]);
return0;
}
或者sort(a,a+10,greater< 型別 >( ));//標頭檔案:#include< iostream >
執行結果:
假設自己定義了乙個結構體node
typedef
struct
node;
node arr[
100]
;
有乙個node型別的陣列node arr[100],想對它進行排序:先按a值公升序排列,如果a值相同,再按b值降序排列,如果b還相同,就按c降序排列。就可以寫乙個比較函式:
以下是**片段:
bool cmp
(node x,node y)
與sort的區別:sort更類似於快速排序的思想,而stable_sort用得是歸併排序的思路
當資料都相同時,他不會打亂原有的順序,所以更加穩定
例如:有兩個相同的數a和b,在sort排序後b有可能會跑到a的前面,但是stable_sort則不會打亂原有順序
sort函式用法
sort函式的用法 做acm題的時候,排序是一種經常要用到的操作。如果每次都自己寫個冒泡之類的o n 2 排序,不但程式容易超時,而且浪費寶貴的比賽時間,還很有可能寫錯。stl裡面有個sort函式,可以直接對陣列排序,複雜度為n log2 n 使用這個函式,需要包含標頭檔案。這個函式可以傳兩個引數或...
sort函式用法
標頭檔案 include using namespace std 1.預設的sort函式是按公升序排序。sort a,a n 兩個引數分別為待排序陣列的首位址和尾位址 2.可以自己寫乙個cmp函式,按特定意圖進行排序。例如 1 對陣列a降序排序 int cmp const int a,const i...
Sort函式用法
sort函式為c 中中自帶的重要函式之一,作用是對陣列進行快速排序。用法如下 sort 起始位置,結束位置,判斷函式 一般來說,起始位置直接寫上要排序的陣列就行了,比如我們要排序的陣列是r,需要排序n個數,就寫成sort r,r n 可以不寫判斷函式,預設從小到大排序。需要注意的是sort預設從r ...