(一)為什麼要用c++
標準庫里的排序函式
sort()函式是
c++一種排序方法之一,學會了這種方法也打消我學習
c++以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間複雜度為n*log2(n),執行效率較高!
(二)c++
標準庫里的排序函式的使用方法
i)sort
函式包含在標頭檔案為#include的c++標準庫中,呼叫標準庫里的排序方法可以不必知道其內部是如何實現的,只要出現我們想要的結果即可!
ii)sort
函式有三個引數:
(1)第乙個是要排序的陣列的起始位址。
(2)第二個是結束的位址(最後一位要排序的位址)
(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法是從小到大排序。
sort函式使用模板:
sort(start,end,排序方法)
下面就具體使用sort
()函式結合對陣列裡的十個數進行排序做乙個說明!
例一:sort
函式沒有第三個引數,實現的是從小到大
#include
#include
using namespace std;
int main()
;for(int i=0;i<10;i++)
coutfor(int i=0;i<10;i++)
cout通過上面的例子,會產生疑問:要實現從大到小的排序腫麼辦?
這就如前文所說需要在sort()函式裡的第三個引數裡做文章了,告訴程式我要從大到小排序!
需要加入乙個比較函式 complare(),
此函式的實現過程是這樣的
bool complare(int a,int b)
這就是告訴程式要實現從大到小的排序的方法!
#include
#include
using namespace std;
bool complare(int a,int b)
int main()
;for(int i=0;i<10;i++)
coutcomplare
函式傳入引數了,
//這是規則
for(int i=0;i<10;i++)
cout}例三:
通過上面例
一、二的方法雖然實現了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程式執行何種排序的原則的函式,c++
標準庫強大的功能完全可以解決這種麻煩。
sortt函式的第三個引數可以用這樣的語句告訴程式你所採用的排序原則
less《資料型別
>()//
從小到大排序
greater《資料型別
>()//
從大到小排序
結合本例子,這樣的就可以完成你想要的任何一種排序原則了
#include
#include
using namespace std;
int main()
;for(int i=0;i<10;i++)
coutfor(int i=0;i<10;i++)
cout}#include
#include
using namespace std;
int main()
;for(int i=0;i<10;i++)
coutfor(int i=0;i<10;i++)
cout例四:利用sort
函式還可以實現對字元的排序,排序方法大同小異,下面就把程式範例展示一下
#include
#include
using namespace std;
int main()
/*這個comparison函式很重要.如果希望公升序排序,就是"<",降序排列就是">"號,這樣便於直觀記憶.如果希望用elem2作為比較標準
就把elem1改為elem2,這樣結構體就以elem2為比較標準排序了.*/
bool
comparison(example a,example b)
c 中的sort 函式
起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給...
c 中的sort 函式
起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給...
C 中的sort函式
標頭檔案 include using namespace std 1.如果sort函式只帶兩個引數,如 int arr 5 sort arr,arr 5 則表示將陣列arr中的數按公升序排列。其中第乙個引數是要排序的陣列的首位址,第二個引數是陣列的尾位址的下一位址。2.如果sort函式中的第三個引數...