数组排序-使用sort函数
发布时间:2023-06-26 05:18:08
数组排序是计算机程序中经常遇到的问题之一。排序算法有很多种,其中一种比较简便的方式是使用sort函数。sort函数是C++ STL(标准模板库)提供的一个通用排序函数,可以用于对各种类型的元素进行排序。
sort函数的参数如下:
1.起始地址
2.终止地址
3.比较函数
sort函数可以用来排序的数据结构有数组、vector、list、deque等STL容器。
在这里,我们将以数组为例,介绍sort函数的使用。
使用sort函数前需要包含头文件#include<algorithm>。
下面是一个使用sort函数对数组进行排序的例子:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[]={5,2,3,1,4}; //定义并初始化数组
sort(a,a+5);//对数组进行排序
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";//输出排序后的数组
}
cout<<endl;
return 0;
}
上面代码中,使用sort函数对数组a进行排序。sort函数的第一个参数为数组的起始地址,第二个参数为数组的终止地址(注意,这里终止地址为数组的最后一个元素后面的一个位置)。第三个参数为比较函数,我们可以不用指定,sort函数会自动使用默认的比较函数来进行排序。
输出结果为:1 2 3 4 5。
sort函数默认按照从小到大的顺序进行排序。如果想要按照从大到小的顺序排序,可以通过自定义比较函数来实现。
下面是一个按照从大到小排序的例子:
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;//自定义比较函数
}
int main()
{
int a[]={5,2,3,1,4}; //定义并初始化数组
sort(a,a+5,cmp);//对数组进行排序
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";//输出排序后的数组
}
cout<<endl;
return 0;
}
上面代码中,定义了一个自定义比较函数cmp,该函数返回a>b,即当a>b时返回true,表示a应该排在b的前面。然后将该函数作为sort函数的第三个参数传入,sort函数会按照该函数的返回值来进行排序。
输出结果为:5 4 3 2 1。
总结一下,sort函数是C++ STL提供的一个通用排序函数,可以用于各种类型的元素排序,包括数组。sort函数使用方便,可以快速对数组进行排序,并且支持自定义比较函数,可以灵活地进行排序。
