C sort 函式的用法

2021-08-06 04:47:26 字數 2646 閱讀 8178

(一)為什麼要用

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;

intmain() ;

for(inti=0

;i<

10;i++)

cout

<

sort(a,a+

10);

for(inti=0

;i<

10;i++)

cout

<

return0;

} 例二

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

這就如前文所說需要在

sort

()函式裡的第三個引數裡做文章了,告訴程式我要從大到小排序!

需要加入乙個比較函式

complare(),

此函式的實現過程是這樣的

bool

complare(

inta,

intb)

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

#include

#include

using

namespace

std;

bool

complare(

inta,

intb)

intmain() ;

for(inti=0

;i<

10;i++)

cout

<

sort(a,a+

10,complare);

//在這裡就不需要對

complare

函式傳入引數了,

//這是規則

for(inti=0

;i<

10;i++)

cout

<

return0;

}例三:

通過上面例

一、二的方法雖然實現了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程式進行何種排序的函式,

c++標準庫強大的功能完全可以解決這種麻煩。

sortt

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

less<

資料型別

>()

//從小到大排序

greater<

資料型別

>()

//從大到小排序

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

#include

#include

using

namespace

std;

intmain() ;

for(inti=0

;i<

10;i++)

cout

<

sort(a,a+

10,less<

int>());

for(inti=0

;i<

10;i++)

cout

<

return0;

} #include

#include

using

namespace

std;

intmain() ;

for(inti=0

;i<

10;i++)

cout

<

sort(a,a+

10,greater<

int>());

for(inti=0

;i<

10;i++)

cout

<

return0;

} 例四:利用

sort

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

#include

#include

using

namespace

std;

intmain()

C sort 函式用法

msdn中的定義 template voidsort ranit first,ranit last 1 template voidsort ranit first,ranit last,pred pr 2 標頭檔案 include using namespace std 1.預設的sort函式是按公...

C sort 函式用法

msdn中的定義 template voidsort ranit first,ranit last 1 template voidsort ranit first,ranit last,pred pr 2 標頭檔案 include using namespace std 1.預設的sort函式是按公...

C sort函式用法

from 最近演算法作業經常需要排序。偶是乙個很懶的人,於是一直用c 的sort進行排序 不少同志對此心存疑慮,所以今天就寫一寫sort的用法。宣告 此用法是從某大牛的程式中看到的,其實偶只是拿來用,不知所以然,飄走 msdn中的定義 template voidsort ranit first,ra...