欢迎访问宙启技术站
智能推送

数组排序-使用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函数使用方便,可以快速对数组进行排序,并且支持自定义比较函数,可以灵活地进行排序。