c++sort()函式的用法近來看了c++標準庫這本書,學到了很多,就把這其中的一點c++sort()函式的用法寫下來和大家分享吧!(一)為什麼要用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
<10
); for
(inti=0
;i<
10;i++)
cout
0;}例二通過上面的例子,會產生疑問:要實現從大到小的排序腫麼辦? 這就如前文所說需要在sort()函式裡的第三個引數裡做文章了,告訴程式我要從大到小排序!需要加入乙個比較函式 complare(),此函式的實現過程是這樣的
bool
complare(
inta,
intb)這就是告訴程式要實現從大到小的排序的方法!
#include
#include
using
namespace
std;
bool
complare(
inta,
intb)
intmain();
for(
inti=
0;i<
10;i++)
cout
<10
,complare);
//在這裡就不需要對complare函式傳入引數了,//這是規則
for(
inti=
0;i<
10;i++)
cout
0;}例三:通過上面例
一、二的方法雖然實現了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程式進行何種排序的函式,c++標準庫強大的功能完全可以解決這種麻煩。sortt函式的第三個引數可以用這樣的語句告訴程式你所採用的排序原則less《資料型別》()
//從小到大排序
greater《資料型別》()
//從大到小排序
結合本例子,這樣的就可以完成你想要的任何一種排序原則了
#include
#include
using
namespace
std;
intmain();
for(
inti=
0;i<
10;i++)
cout
<10
,less<
int>());
for(
inti=
0;i<
10;i++)
cout
#include
#include
using
namespace
std;
intmain();
for(
inti=
0;i<
10;i++)
cout
<10
,greater<
int>());
for(
inti=
0;i<
10;i++)
cout
0;}例四:利用sort函式還可以實現對字元的排序,排序方法大同小異,下面就把程式範例展示一下
#include
#include
using
namespace
std;
intmain()
C 中Sort的用法
1.sort 標頭檔案 include 時間複雜度 n lg n 實現原理 sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系統會根據你的資料形式和資料量自動選擇合適的排序方法,這並不是說它每次排序只選擇一種方法,它是在一次完整排序中不同的情況選用不同方...
c 中sort()函式的用法
在c 中我們經常會用到排序函式sort 今天我們一起來學習一下sort 函式的具體用法.1 sort函式可以三個引數也可以兩個引數,必須的標頭檔案 include algorithm 和using namespace std 2 它使用的排序方法是類似於快排的方法,時間複雜度為n log2 n 3 ...
C 中的sort排序用法
c中的qsort 採用的是快排演算法,c 的sort 則是改進的快排演算法。兩者的時間複雜度都是n logn 但是實際應用中,sort 一般要快些,建議使用sort stl中就自帶了排序函式sort對給定區間所有元素進行排序 要使用此函式只需用 include sort即可使用,語法描述為 sort...