C 標準庫中排序函式sort的用法

2021-09-12 01:14:20 字數 2251 閱讀 3594

(一)為什麼要用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()

int a[10]=;

for(int i=0;i<10;i++)

coutfor(int i=0;i<10;i++)

cout例二通過上面的例子,會產生疑問:要實現從大到小的排序腫麼辦?

這就如前文所說需要在sort()函式裡的第三個引數裡做文章了,告訴程式我要從大到小排序!

需要加入乙個比較函式 complare(),此函式的實現過程是這樣的

bool complare(int a,int b)

return a>b;

這就是告訴程式要實現從大到小的排序的方法!

#include

#include

using namespace std;

bool complare(int a,int b)

return a>b;

int main()

int a[10]=;

for(int i=0;i<10;i++)

coutfor(int i=0;i<10;i++)

cout例三:通過上面例

一、二的方法雖然實現了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程式執行何種排序的原則的函式,c++標準庫強大的功能完全可以解決這種麻煩。

sortt函式的第三個引數可以用這樣的語句告訴程式你所採用的排序原則

less《資料型別》()//從小到大排序

greater《資料型別》()//從大到小排序

結合本例子,這樣的就可以完成你想要的任何一種排序原則了

#include

#include

using namespace std;

int main()

int a[10]=;

for(int i=0;i<10;i++)

coutfor(int i=0;i<10;i++)

cout#include

#include

using namespace std;

int main()

int a[10]=;

for(int i=0;i<10;i++)

coutfor(int i=0;i<10;i++)

cout例四:利用sort函式還可以實現對字元的排序,排序方法大同小異,下面就把程式範例展示一下

#include

#include

using namespace std;

int main()

char a[11]="asdfghjklk";

for(int i=0;i<10;i++)

coutfor(int i=0;i<10;i++)

cout利用sort函式按字典序排序

string s[21]; 

for(int i=0;i <20;i++) cin>>s[i]; 

sort(s,s+20);不用寫cmp函式,string 類提供了operator。但這只是按照字典序排序的,按長度排序如下:

按長度排序:

c++版:

#include

#include

#include

using namespace std;

bool cmp(string a,string b)

return 0;

}

C C 中排序的庫函式sort和qsort

1.sort 必須新增標頭檔案 include sort屬於標準模板庫,只適用於c c語言不支援.include include using namespace std int main sort a,a sizeof a sizeof a 0 for int i 0 i sizeof a size...

C 標準模板庫下的函式sort

stl裡面有個sort函式,可以直接對陣列排序,複雜度為n log2 n sort 定義在在標頭檔案中。sort函式是標準模板庫的函式,已知開始和結束的位址即可進行排序,可以用於比較任何容器 必須滿足隨機迭代器 任何元素,任何條件,執行速度一般比qsort要快。另外,sort 是類屬函式,可以用於比...

C 標準庫函式之用於排序的sort函式

排序和查詢可以說是計算機領域最經典的問題了,而c 標準庫在標頭檔案algorithm中已經內建了基於快速排序的函式sort,只需呼叫這個函式,就可以輕易地完成排序。下面簡要介紹sort函式 sort first,last,comp 函式有三個引數 1.first 待排序序列的起始位址 2.last ...