sort 函式用法簡介

2022-03-07 12:36:08 字數 784 閱讀 4586

stlsort函式用法簡介

sort 函式,可以直接對陣列排序,複雜度為 n*log2(n)。

使用這個函式,需要包含標頭檔案 #include 。

這個函式可以傳兩個引數或三個引數。第乙個引數是要排序的區間首位址,第二個引數是區間尾位址的下一位址,排序的區間是[a,b)。例:對陣列 t 的第 0 到 len-1 的元素排序,就寫 sort(t,t+len)。

對向量 v 排序也差不多, sort(v.begin(),v.end());

排序的資料型別不侷限於整數,只要是定義了小於運算的型別都可以,比如字串類 string 。

如果是沒有定義小於運算的資料型別,或者想改變排序的順序,就要用到第三引數----比較函式。比較函式是乙個自己定義的函式,返回值是 bool 型,它規定了什麼樣的關係才是「小於」。想把剛才的整數陣列按降序排列,可以先定義乙個比較函式 cmp

bool cmp(int a,int b)

排序的時候就寫 sort(a,a+len,cmp)。

假設自己定義了乙個結構體 node

struct node

有乙個 node 型別的陣列 node arr[100] ,想對它進行排序:先按 a 值公升序排列,如果 a 值相同,再按 b 值降序排列,如果 b 還相同,就按 c 降序排列。就可以寫這樣乙個比較函式:

bool cmp(node x,node y)

排序時寫 sort(arr,a+100,cmp)。

STL中sort函式用法簡介

做 acm題的時候,排序是一種經常要用到的操作。如果每次都自己寫個冒泡之類的 o n 2 排序,不但程式容易超時,而且浪費寶貴的比賽時間,還很有可能寫錯。stl裡面有個 sort函式,可以直接對陣列排序,複雜度為 n log2 n 使用這個函式,需要包含標頭檔案。這個函式可以傳兩個引數或三個引數。第...

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...