1、基本规则:
sort ( 数组起始指针, 数组尾指针, 排序规则 ) ;
Note:
① 头文件是 #include< algorithm>
②[数组起始指针,数组尾指针) //左闭右开
③排序规则:可省略,可自己写
④原理很简单,掌握规则即可,下面举几个例子练习
2、对数组排序:
[例1]
int a[]={4,8,2,34,6,9,1};
sort(a,a+7); //默认 小-->大 排列
结果如下:
[例2]
#include<iostream>
#include<algorithm>
using namespace std;
int cmp(int a,int b) //自定义规则
{
return a>b; //从大到小排序
}
int main()
{
int a[]={4,8,2,34,6,9,1};
sort(a,a+7,cmp);
for(int i=0;i<7;i++)
cout<<a[i]<<" ";
return 0;
}
结果如下:
2、对结构体排序:
[例1] 按字符排序
#include<iostream>
#include<algorithm>
using namespace std;
struct Strin{
char ch;
int num;
}str[11];
bool comparsion(Strin a,Strin b)
{
// return a.num>b.num; //按a.num排序
return a.ch<b.ch; //按a.ch排序
}
int main()
{
Strin str[]={{'c',4},{'d',2},{'a',3},{'b',1}};
sort(str,str+4,comparsion);
for(int i=0;i<4;i++)
{
cout<<str[i].ch<<" "<<str[i].num<<endl;
}
return 0;
}
结果如下:
**[例2]**按整形排序
#include<iostream>
#include<algorithm>
using namespace std;
struct Strin{
char ch;
int num;
}str[11];
bool comparsion(Strin a,Strin b)
{
return a.num>b.num; //按a.num排序
// return a.ch<b.ch; //按a.ch排序
}
int main()
{
Strin str[]={{'c',4},{'d',2},{'a',3},{'b',1}};
sort(str,str+4,comparsion);
for(int i=0;i<4;i++)
{
cout<<str[i].ch<<" "<<str[i].num<<endl;
}
return 0;
}
结果如下: