sort函数的用法与实验

用了这么久的sort排序,但是一直没有对他进行总结。

像我这样的蒟蒻有了sort排序就再也没有看过快排、冒泡排序、桶排序了......

sort的头文件

存在于C++标准库内的函数,我们其实并不需要知道他的原理,只要会用就行了;;;

sort函数有三个参数

sort(a,b,c)

  1. a表示要排序的数组的起始位置
  2. b表示要排序的数组的结束地址(最后一位要排序的地址)
  3. c是排序的方法,如果不写则默认从小到大排序

Sort函数使用模板: Sort(start,end,排序方法)

使用sort函数主要的方法就是在参数c上做文章

如想实现从大到小排序

可以自己写一个比较函数

bool complare(int a,int b)
{
 return a>b;
}

具体操作就是:

先搞好参数c,即做一个比较函数 cmp ↑

然后sort(a,b,cmp)即可

这样做还是有点麻烦,因为还需要自己编写告诉程序进行何种排序的函数,c++标准库强大的功能完全可以解决这种麻烦。

Sortt函数的第三个参数可以用这样的语句告诉程序你所采用的排序原则:

less<数据类型>()//从小到大排序

greater<数据类型>()//从大到小排序

sort(a,b,c());

#include<iostream>
#include<algorithm>
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<<a[i]<<endl;
sort(a,a+10,less<int>());//从小到大排序
 for(int i=0;i<10;i++)
 cout<<a[i]<<endl;
 return 0;
}
#include<iostream>
#include<algorithm>
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<<a[i]<<endl;
 sort(a,a+10,greater<int>());//从大到小排序
 for(int i=0;i<10;i++)
 cout<<a[i]<<endl;
 return 0;
}

另外,sort函数也可以实现对字符的排序

sort(a,b,c());

如对"asdfghjklk"进行排序

从大到小排序

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 char a[11]="asdfghjklk";
 for(int i=0;i<10;i++)
 cout<<a[i]<<endl;
 sort(a,a+10,greater<char>());
 for(int i=0;i<10;i++)
 cout<<a[i]<<endl;
 return 0;
}

从小到大排序

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 char a[11]="asdfghjklk";
 for(int i=0;i<10;i++)
 cout<<a[i]<<endl;
 sort(a,a+10,less<char>());
 for(int i=0;i<10;i++)
 cout<<a[i]<<endl;
 return 0;
}


原文链接: https://www.cnblogs.com/pirote-zjy/p/7717914.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/261811

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午2:42
下一篇 2023年2月14日 下午2:44

相关推荐