sort排序

    sort排序是將數組進行升序或降序排序,比冒泡排序快,sort默認是升序排序,並且使用時需加入頭文件algorithm。

 例如對一個數組升序排序:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a[5]={23,56,89,66,78},i;
    sort(a,a+5);
    for(i=0;i<5;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

輸出:

sort(數組名,數組名+總元素個數);

如果需要降序排序,則需要加上一個比較函數,如:

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(const int a,const int b)
{
    return(a>b);//'>'爲降序排序,'<'爲升序
}
int main()
{
    int a[5]={23,56,89,66,78},i;
    sort(a,a+5,cmp);
    for(i=0;i<5;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

    使用sort對結構體排序:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
typedef struct
{
    string name;
    int num;
    int score;
}Student;
bool cmp(const Student a,const Student b)
{
    return(a.score<b.score);//對成績進行比較 
}
int main()
{
    Student s[10];
    int i;
    for(i=0;i<5;i++)
        cin>>s[i].name>>s[i].num>>s[i].score;
    sort(s,s+5,cmp);//對結構體進行排序
    for(i=0;i<5;i++)
        cout<<s[i].name<<" "<<s[i].num<<" "<<s[i].score<<endl;
    return 0;
}

輸入:

輸出:

總的來說,定義一個函數對結構體中元素進行比較,在將該函數放入sort中即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章