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

备案ip 查询网站查询网站在线网页制作工具

备案ip 查询网站查询网站,在线网页制作工具,河南省建设监理网站,好看的网站设计公司排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的#xff0c;而是对数值按位划分#xff0c;按照以空间换取时间的思路来排序。看起来它们的复杂度更好#xff0c;但实际…排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的而是对数值按位划分按照以空间换取时间的思路来排序。看起来它们的复杂度更好但实际上它们的应用环境比较苛刻在很多情况下并不比前几种排序算法更好。 排序是基本的数据处理读者需要认真体会这些算法的思路和操作方法。不过在算法竞赛中一般不需要手动编写这些排序算法而是直接使用库函数例如C的sort()函数。 STL的排序函数sort()有以下两种定义 (1)void sort (RandomAccessIterator first, RandomAccessIterator last); (2)void sort (RandomAccessIterator first, RandomAccessIterator last,Compare comp); 简称前闭后开。 sort()支持从大到小的排序也支持从小到大的排序。sort()自带4种排序less、greater、less_equal、greater_equal。默认情况下sort()按从小到大进行排序less可以不写。 代码演示 #includebits/stdc.h using namespace std; bool my_less(int i, int j) {return (i j); //自定义小于函数 } bool my_greater(int i, int j) {return (i j); //自定义大于函数 } int main () {int a[] {3,7,2,5,6,8,5,4};sort(a,a4); //对前4个数排序结果2 3 5 7 6 8 5 4for(int i0; i8; i) couta[i] ;cout”\n”; //下面可以复制这一行输出sort(a,a8,lessint()); //从小到大排序结果2 3 4 5 5 6 7 8sort(a,a8,my_less); //自定义排序结果2 3 4 5 5 6 7 8sort(a,a8,greaterint()); //从大到小排序结果8 7 6 5 5 4 3 2sort(a,a8,my_greater); //自定义排序结果8 7 6 5 5 4 3 2vectorint c {1,2,3,4,5,6,7,8};sort(c.begin(),c.end(),my_greater); //结果8 7 6 5 4 3 2 1for(int i0; ic.size(); i) coutc[i] ;cout \n;string shello world; sort(s.begin(),s.end());couts; //输出dehllloorw。注意第一个是空格return 0; } C的sort()有两个优点能在原数组上排序不需要新的空间能在数组的局部区间上排序。 例题1-统计数字 代码 #includebits/stdc.h using namespace std; int nums[200010];//n200000我们多申请一点多10就行了。 int main() {int n;scanf(%d,n);for(int i 1; i n; i) scanf(%d,nums[i]);sort(nums1, nums1n);int cnt 0;for(int i 1; i n; i) {cnt;//某个数出现的次数if(nums[i] ! nums[i1]) {printf(%d %d\n, nums[i], cnt); //说明这个数结束了轮到下一个数了记录一次cnt 0; //置0重新计数}} } 例题2-错误票据 题目分析本题是简单题解题思路是读取所有数字先排序然后查找丢失的数字和重复的数字。本题的麻烦之处是输入的处理。 代码 #includebits/stdc.h using namespace std; const int N 1e410;//申请的数组比预期的要大一点。 int a[N]; int main() {int n;cin n;int cnt 0;while(scanf(%d, a[cnt]) ! EOF) cnt; //注意读数据的写法下面会讲解sort(a, acnt);//排序int ans1, ans2;for(int i 1; i cnt; i) {if(a[i] - a[i-1] 1) ans1 a[i-1]1; //查找断号if(a[i] a[i-1]) ans2 a[i]; //查找重号}cout ans1 ans2;return 0; } 比赛经常有这样的代码while(scanf(“%d%d”)!EOF)这玩意啥意思呢首先scanf你写while里就很奇怪了初学者表示没见过这么嵌套写的再加个EOF更离谱了。 首先这个代码scanf能写while里是因为scanf(“%d%d”)!EOF本身是个逻辑判断也就是真或者假所以可以作为条件判断写到while里。 EOF到底啥玩意 您不妨打开我们最常用的stdio.h这个头文件然后搜索EOF即可发现答案蓝桥杯指定编译器devcpp中怎么打开这个文件呢按住ctrl然后用鼠标点击stdio.h即可进入 找到了 EOF其实就是-1 也就是说EOF就是个数字被定义为-1而已 在我们进行包括scanf等的输入函数使用时其实用户在cmd中的输入实际是存放于缓冲区当中当用户键入回车那一瞬间之前输入的数据才会被存进去而这里无论是单个字符还是字符串我们都知道scanf的返回值呢是表示成功接受到的对象的个数那这里如果遇到特殊情况比如缓冲区文件流满等问题那么scanf将如何处理呢答案是返回-1 ! 这里不光是scanf返回值为个数的函数遇到文件流满大多都会返回-1所以这个-1用的比较多那么stdio.h就索性专门定义一个宏来表示取End Of File(文件末尾的意思)的前三个字母即组成EOF所以也就有了 #define EOF (-1) 这样的话 例题3.结构体排序 代码 #includebits/stdc.h using namespace std; struct stu {int id; //学号int c,m,e; //语文、数学、英语成绩int sum; } st[305]; bool cmp(stu a,stu b) {if(a.sum b.sum) return True;else if(a.sum b.sum) return False;else { //a.sum b.sumif(a.c b.c) return True;else if(a.c b.c) return False;else { //a.c b.cif(a.id b.id) return False;else return True;}} } int main() {int n;cinn;for(int i1; in; i) {st[i].id i; //学号cin st[i].c st[i].m st[i].e;st[i].sum st[i].c st[i].m st[i].e; //总分}sort(st1,st1n,cmp);for(int i1; in; i) coutst[i].id st[i].sum endl;return 0; }
http://www.hkea.cn/news/14465425/

相关文章:

  • 上传下载网站模板个人网页html模板
  • 软件综合课设做网站青岛海西建设集团官方网站
  • 榆次建设局网站网站制作案例价格
  • 郴州网站制作公司地址网站网络推广优化哪家好
  • 网站建设 小程序开发网站推广策划评估指标有哪些
  • 漳州建设银行网站首页摄影比赛投稿网站
  • 58网站怎么做浏览度才高做电商网站需要会些什么
  • 电子商务在酒店管理网站建设区块链插件wordpress
  • 德州网站优化公司网络营销的特点和作用
  • 广东工程承包网站企业网址怎么做
  • dz如何做门户网站浏览器打不开二级网页
  • 沧州网站建设沧州免费域名申请入口
  • 网站描述怎么写比较好wordpress双语插件
  • 事业单位报名网站长春建设信息网站
  • 沙坪坝网站建设公司选哪家好安徽省住房城乡建设部网站
  • 水利建设工程网站官网网站搭建
  • 成都网站建设怎么样淘客网站seo怎么做
  • 济南网站优化公司哪家好软件公司找项目
  • 数据处理网站开发中装建设
  • 义乌网站建设优化推广广州seo公司哪个比较好
  • python做网站用什么软件合肥软件开发网站建设
  • 清远做网站的广告公司接单软件
  • 10000ip网站怎么做北京seo软件
  • 外贸自建站源码网页设计实验报告格式模板
  • 关于网站建设分类北京seo优化公司
  • 网站后台如何修改参数企业做网站用dedeCMS免费吗
  • 网站 关键词库重庆公司注销的流程及需提供的材料
  • 网络广告网站怎么做网站免费模板资源
  • 建材企业网站推广方案北京设计制作公司
  • 嵊州市住房和城乡建设局网站网络游戏代理平台