当前位置: 首页 > news >正文

创建网站论坛合肥公共资源交易中心

创建网站论坛,合肥公共资源交易中心,做网站是用什么语言做成的,软考高级使用 sort 实现自定义排序 目录 使用 sort 实现自定义排序1.sort 的基本用法2.sort 实现自定义排序3.结构体重载进行比较 1.sort 的基本用法 sort 库函数需要引入头文件algorithm,是一种排序算法,使用的排序逻辑可以看成是效率很高的快速排序或其的改进版本。平均时…

使用 sort 实现自定义排序

目录

  • 使用 sort 实现自定义排序
    • 1.sort 的基本用法
    • 2.sort 实现自定义排序
    • 3.结构体重载进行比较

1.sort 的基本用法

sort 库函数需要引入头文件algorithm,是一种排序算法,使用的排序逻辑可以看成是效率很高的快速排序或其的改进版本。平均时间复杂度为 n l o g n nlogn nlogn 。下面介绍 sort 的基本用法。

对一个数组进行排序

#include<iostream>
#include<algorithm> //使用sort库函数需要引入头文件algorithmusing namespace std; const int N = 100010;
int arr[N]; //定义全局变量数组arrint main()
{int n; //n代表数组长度cin >> n; for(int i = 1; i <= n; i ++)cin >> arr[i]; //输入n个数sort(arr + 1, arr + n + 1);//sort(初位置,末位置的下一位) 由于我们读入时是从arr[1]开始储存的,所以初位置是arr + 1//待排序的区间为左闭右开区间,[i, j)for(int i = 1; i <= n; i ++)cout << arr[i] << " ";//打印排序后数组return 0;
}

样例测试
在这里插入图片描述
对容器进行排序,迭代器排序

#include<algorithm>
#include<iostream>
#include <vector>using namespace std;vector<int> arr; //使用vector<int>容器int main()
{int n;cin >> n;//arr的长度for(int i = 1; i <= n; i ++){int x;cin >> x;arr.push_back(x);//将x插入arr容器末尾}sort(arr.begin(), arr.end());//使用迭代器进行排序for(auto i : arr)//迭代遍历cout << i << " ";return 0;
}

2.sort 实现自定义排序

sort 默认使用小于号 < 进行排序,一般进行的都是升序排序,通过自定义比较规则,可以传入第三个参数,可以是函数或 lambda 表达式。
使用函数实现自定义排序

#include<iostream>
#include<algorithm>using namespace std;const int N = 100010;
int arr[N];//待排序数组bool cmp(const int &u, const int &v)//自定义排序函数
{return u > v;
}int main()
{int n;cin >> n;//数组长度for(int i = 1; i <= n; i ++)cin >> arr[i];//输入数组中的数sort(arr + 1, arr + n + 1, cmp);//引入了第三个参数,只写函数名for(int i = 1; i <= n; i ++)cout << arr[i] << " ";//打印输出return 0;
}

这里将升序排序通过自定义函数改成了降序排序
在这里插入图片描述
使用lambda表达式实现自定义排序

#include<iostream>
#include<algorithm>
#include<vector>using namespace std;int main()
{vector<int> arr = {5, 1, 3, 8, 2}; //直接将数据初始化传入arrsort(arr.begin(), arr.end(), [](const int &u, const int &v){return u > v;}); //使用lambda表达式实现自定义排序for(auto i : arr)cout << i << " ";//迭代打印return 0;
}

在这里插入图片描述

3.结构体重载进行比较

结构体可以将小于号重载后进行排序,使用前面的方法也可以

struct Node
{int u, v;bool operator < (const Node & m)const{//以u为第一关键字,v为第二关键字排序return u == m.u ? v < m.v : u < m.u;}
}

重载完成的结构体在使用sort时可以直接使用,会默认按重载的小于号逻辑进行排序。

这就是全部的内容了,喜欢可以点个赞,寒假会持续更新。

http://www.yayakq.cn/news/489842/

相关文章:

  • 北京 网站建设600微信的官方网站怎么做
  • 管理系统是网站吗哈尔滨网站制作哪儿好薇
  • 公司做的网站入哪个会计科目php网站开发优势
  • 网站建设业务员怎么做wordpress自定义作者连接
  • 专业的单位网站建设wordpress调用内容前多少字
  • 潍坊网站制作公司绵阳 网站开发 公司
  • 珠海网站建设熊掌号那些公司做网站比较厉害
  • 如何给网站做高质量外链免费的黄冈 投放平台有哪些
  • 自己怎么做云购网站滁州商业网站建设
  • 电子商务网站制作公司wordpress移动端导航菜单
  • 网站建设 王卫洲电商小程序免费开店
  • 网站建设属于硬件还是软件贵州省住房及城乡建设部网站
  • 淘宝客网站免费做东莞阳光网官网手机版
  • 石家庄专门做网站做网站别人输账号代码
  • 私人怎么做网站快速排名软件哪个好
  • 做网站的收钱不管了品牌画册设计公司网址
  • 国内谷歌网站SEO优化非法网站开发者刑事责任
  • 小说网站收录了怎么做排名如何注册公司名字
  • 网站开发工程师 英文seo关键词排名教程
  • 南通建设厅网站常州建站程序
  • 网站开发选题依据传统企业网站建设
  • 网站建设公司行业描述设计需要的软件
  • 厦门小型网站建设网站正在建设 下载
  • 上海优化排名网站深圳宝安中学家长群
  • 厦门公司注册网站网站正能量
  • 网站备案初审时间筑龙网官网首页
  • asp新闻发布网站模板下载为什么要建设个人网站
  • 网站内页一般多久收录深圳坪山天气预报15天
  • 徐州网站建设方案书济南哪有做网站的
  • 商城网站制作教程网站 新媒体建设情况