C++中的sort就是实现一个排序的功能,他是包含在algorithm头文件下面的。
sort(起始地址,结束地址,排序方法)
最后一个参数为排序方法是可写可不写的,如果不写就是这样sort(起始地址,结束地址),默认这种排序是从小到大
举个例说明一下:如果我要对3个整数进行排序
#include<cstdio>
#include<algorithm>
using namespace std;
int a[5];
int main()
{
int n=3;
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);//这里就是没有写第三个参数,就默认是从小到大排序
for(int i=0;i<n;i++)
printf("%d%c",a[i],i==2?'\n':' ');
}
#include<cstdio>
#include<algorithm>
using namespace std;
int a[5];
int cmp(int num1,int num2)
{
//return num1<num2;.//如果写这句话就是表示从小到大排序
return num1>num2;//写这句话就是代表从大到小排序
}
int main()
{
int n=3;
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
printf("%d%c",a[i],i==2?'\n':' ');
}
但是我还是想说,如果要求从大到小排序,大家每次都要去写一个比较函数就会很麻烦,既然讲STL,那么我们就要学会使用C++为我们提供的资源
#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
int a[5];
int main()
{
int n=3;
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n,greater<int>());//这个也是STL种为我们准备好的函数
for(int i=0;i<n;i++)
printf("%d%c",a[i],i==2?'\n':' ');
}
我相信观察仔细的人就会发现我多了一个头文件,因为我是调用的库函数,也就是说greater是包含在set这个头文件下面的。
这样也很方便的实现了从大到小的排序。
题目中如果出现错误,希望大家留言告诉,一起进步。