C sort排序函式的用法總結

2021-09-12 07:37:09 字數 2085 閱讀 1140

標準模板庫stl中的sort()函式,時間複雜度為n*log2(n),執行效率較高。

①、sort()函式可以三個引數也可以兩個引數;

②、必須的標頭檔案 #include < algorithm>和using namespace std。

③、它使用的排序方法類似於快排,時間複雜度為n*log2(n)

sort()函式有三個引數:(第三個引數可不寫)

(1)第乙個是要排序的陣列的起始位址。

(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法是從小到

大排序。 

sort函式,左閉右開,即 int a[10]=。 sort(a,a+10)。

#include#include using namespace std;

int main();

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

int main();

//列印原陣列

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

//列印原陣列

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

//vector容器存放arr陣列中的元素

vectorvec(arr,arr+10); //經典!用陣列元素初始化vector容器,左閉右開,即+元素數量

for(int i=0;i()規則:

sort(vec.begin(),vec.end(),greater()); //這就很神奇了!!!

cout

for(int i=0;i結果:

③、對字元陣列進行排序:

#include#includeusing namespace std;

int main();

//自己定義的規則:按姓名從小到大排列,若姓名一樣,按年齡從小到大排列

bool comp(student s1,student s2){

if(s1.name==s2.name){

return s1.age結果:

2、運算子過載:

bool operator < (const student &s) const

#include#includeusing namespace std;

struct student{

string name;

int age;

bool operator < (const student &s)const{//符號過載

if(name==s.name){

return age結果:

{ string str("cvicses"); //用()對字串賦值

string s(str.rbegin(),str.rend()); //反向迭代器,將字串str翻轉,賦值給字串s

cout << s <結果:

資料量較大時,用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 函式用法

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...