c++标准库里的sort()排序函数-创新互联
Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!
一,sort()排序函数的使用方法
I)Sort函数包含在头文件为#include
II)Sort函数有三个参数:Sort(start,end,排序方法)
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址的下一地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
二,sort函数使用的简单举例
I)对一维数组进行从小到大的排序
#include
#include
using namespace std;
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i<10;i++)
cout<sort(a,a+10);
for(int i=0;i<10;i++)
cout<return 0;
}
到这里你可能会有疑问,该如何实现对一维数组从大到小进行排序呢?这时,就要使用sort函数的第三个参数了,通过第三个参数,实现从大到小的排序。
II)对一维数组进行从大到小排序
#include
#include
using namespace std;
bool com(int a,int b)
{
return a>b;
}
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i<10;i++)
cout<sort(a,a+10,com);
for(int i=0;i<10;i++)
cout<return 0;
}
通过构造一个bool型的com函数,并将com作为sort函数的第三个参数,即可实现对一维数组的从大到小排序。
三,sort函数使用的举例拓展
如果此时读者需要对一个2行n列的数组进行排序,并且是根据每一列的第一个元素的大小进行排序。最重要的是,在改变位置时,每一列的两个元素要还在同一列,不能乱掉。那么该如何用sort函数实现呢?下面小编带读者来了解一下这个过程。
我们可以将,每一列的两个元素看成一个结构体的两个元素,然后把整个数组看成是一个由结构体组成的一维数组。
typedef struct{
int x,y;
}node;//在这里只需将每一列的第一个元素看成x,第二个元素看成y
同理,我们仿造上面的com函数,再次构造一个coma函数;
bool coma(node a,node b){
return a.x>b.x;
}
下面是完整的代码
#include
#include
using namespace std;
typedef struct{
int x,y;
}node;
bool coma(node a,node b)
{
return a.x>b.x;
}
int main()
{
node a[4];
for(int i=0;i<4;i++)
cin<
for(int i=0;i<4;i++)
cout<
}
下面,附上一道题目,小编认为在这道题目中可能会用到以上知识。
设有n种不同面值的硬币,各硬币的面值存于数组w[i]中。现要用这些面值的硬币来找钱,可以使用的各种面值的硬币个数存于数组s[i]中。对任意钱数0<=m,设计一个用最少硬币找钱的方法。
由于小编,水平有限,此文章中可能存有问题,欢迎各位读者批评指正,小编一定积极改正。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:c++标准库里的sort()排序函数-创新互联
网页URL:http://cdiso.cn/article/ejpso.html