標準模板庫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...