sort()排序是一种简单的快速排序,用于对数组的排序,时间复杂度为n*log2(n)。
sort()函数必须是在 .cpp 的文件中才能运行
头文件为#include<algorithm>和using namespace std。
sort()函数有三个参数值
- 为数组排序的初始地址。
- 为数组排序的末地址。
- 为规定sort()排序的方式,可以是按从小到大排序,也可以按照从大到小排序(第三个参数可以不写,若是不写的话则默认为从小到大的顺序排列)
注意:第三个参数可以用 less<数据类型>()//从小到大排序 ,greater<数据类型>()//从大到小排序 进行排序,该方法可以用来进行对字符的排序(使用该方法进行排序时需要添加头文件#include<iostream>)。
一、只有两个参数默认排序
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int a[5];
for(int i=0;i<5;i++)
scanf("%d",&a[i]);
sort(a,a+5);
for(int i=0;i<5;i++)
printf("%d\n",a[i]);
return 0;
}
二、有三个参数按照从大到小排列
#include<stdio.h>
#include<algorithm>
using namespace std;
bool con(int x,int y)
{
return x>y;
}
int main()
{
int a[5];
for(int i=0;i<5;i++)
scanf("%d",&a[i]);
sort(a,a+5,con);
for(int i=0;i<5;i++)
printf("%d\n",a[i]);
return 0;
}
三、使用less<数据类型>()//从小到大排序 ,greater<数据类型>()//从大到小排序 进行排序
#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
/*bool con(int x,int y)
{
return x>y;
}*/
int main()
{
int a[5];
for(int i=0;i<5;i++)
scanf("%d",&a[i]);
sort(a,a+5,greater<int>());
for(int i=0;i<5;i++)
printf("%d\n",a[i]);
return 0;
}