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中即可。