使用sort函式簡單、方便,c++一種排序方法之一 ,排序方法是類似於快排的方法
但是實際運用過程需要我們做一些變形
於是 寫下這篇筆記,以便後來複習
sort(start,end,cmp)
標頭檔案為
#include
sort函式有三個引數:
(1)第乙個引數是陣列的首位址,一般寫上陣列名就可以,因為陣列名是乙個指標常量
(2)第二個引數相對較好理解,即首位址加上陣列的長度n**(代表尾位址的下一位址) **
(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法是從小到大排序
不指定第三個引數
int a[10]
=;sort
(a,a+10)
;//指標
此時 預設從小到大排序
實現從大到小排序
需要加入乙個比較函式compare()
bool compare
(int a,
int b)
int a[10]
=;sort
(a,a+
10,compare)
;//在這裡就不需要對compare函式傳入引數了
對結構體排序
有乙個結構體 node
struct node
先按a值公升序排列,如果a值相同,再按b值降序排列,如果b還相同,就按c降序排列
bool cmp
(node x,node y)
若要公升序,第乙個的值小於第二個
若要降序,第乙個的值大於第二個
還可以對結構體的比較運算子 過載
結構體內部過載
typedef
struct node
}node;
這裡 不能寫 const node& n 可能是 這前面 沒有 node
結構體外部過載
bool operator<
(const node& n1,
const node& n2)
這裡可以 寫 const node& n1,const node& n2 sort排序用法
做acm題的時候,排序是一種經常要用到的操作。如果每次都冒泡之類的o n 2 排序,不但程式容易超時,而且費時。在algorithm 演算法 庫里有個sort函式,可以直接對陣列排序,複雜度為n log2 n 使用這個函式,需要包含三個標頭檔案。include include using names...
排序sort 排序用法
語法 array sort fun 引數fun可選。規定排序順序。必須是函式。注 如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。如果想按照其他規則進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回乙個用於說明這兩個值的相對順序的...
js排序 sort 排序用法
語法 array.sort fun 引數fun可選。規定排序順序。必須是函式。注 如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。如果想按照其他規則進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回乙個用於說明這兩個值的相對順序的...