sort函式用法與stable sort函式

2021-10-03 02:28:23 字數 1550 閱讀 3385

標頭檔案:#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 ...