游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

CC排序算法之冒泡排序和选择法排序

  文章首发于CSDN,博主HanSmileLiao链接原文链接:https:blog。csdn。netNebulaChienarticledetails120436663
  转眼大二了,突然感觉比大一还要迷茫(也可能是因为数模竞赛,评优都没有搞好,明年暑假的智能车也一点没有头绪23333),计二报的是Python(虽然没什么卵用,但是学校要我们搞非精准扶贫),在用多了自带的函数之后,突然想起去年让我相爱相杀的排序算法,emmm专业课刚好遇到了数据结构里面的各种排序,就想着过了一年再系统地整理一下,也是因为自己对于C太生疏了吧,虽然我不知道C学了个什么玩意儿,真正让自己有点感触的还是OOP,毕竟万物皆对象,行为皆方法。打算做一个系列,再回头看看自己曾经学过的东西,数电模电,线性代数高数等等。
  打算以后多在CSDN、Github、头条丢一些大佬压根看不上的垃圾,说不定哪天大佬就出来教我做事了呢:(
  本人超级菜,求求大佬们出来教我做事啊
  打算做一个系列,专门整理一些算法,先从排序开始一、两种排序算法的基本思想
  1、冒泡法(起泡排序):
  用到for循环,round1的两次for循环分别确定List〔0〕和List〔1〕,现在我们就得到了两个相邻的元素,按照期望的序列决定是较小的数上浮还是较大的数上浮,一直到List〔lengthList〕(以升序为例),此时相当于找到了序列0lengthList的最大值;round2的两次for循环分别确定List〔1〕和List〔2〕,以此类推一直到List〔lengthList1〕,此时找到了序列0lengthList1的最大值依次往后直到确定List〔0〕与List〔1〕大小关系,此时程序结束,如下所示:for(intjlen1;ji;j){if(nameList〔j〕nameList〔j1〕){n;Exchange(nameList〔j〕,nameList〔j1〕);Flagtrue;Aftertheexchangeisperformed,theboolvaluechanges}}
  before:
  589637。。。。。(58)9637。。。。。5(89)637。。。。。58(69)37。。。。。586(39)7。。。。。5863(79)Round1finish。。。其实就相当于把数组拆分,长度依次减去一,每次操作的结果就是将对应数组的最小值(最大值)放在一端,当程序结束,相当于完成了排序。
  2、选择法排序:
  其实原理和冒泡排序类似,只不过不再是相邻两个比较,而是直接在拆分好的子序列里面找到最值,并放到最前面,这就好理解为什么同样一个序列,选择法排序执行次数要比冒泡排序少很多:Indexmaxi;for(intji1;jlen;j){n;if(nameList〔Indexmax〕nameList〔j〕){Indexmaxj;}}if(Indexmax!i){Exchange(nameList〔Indexmax〕,nameList〔i〕);}Supposethesequenceis:5286473Infirstroundthemaximumis8,i0,putitonlocation0,andthenewsequenceis:8526473Insecondroundthemaximumis7,i1,putitonlocation1,andthenewsequenceis8752643。。。。二、具体步骤
  1、引入库
  由于生成数列用的是随机数方式,而且为了保证每次运行程序所得到的结果都不一样,用到了以下库:includeiostreamincludestdlib。hincludetime。h
  2。生成随机数
  参考大佬的文章后用了动态生成随机数以及动态分配数组长度的方法:intListnewint〔lengthList〕;srand((unsignedint)time(NULL));for(intindex0;indexlengthList;index){List〔index〕rand()1001;}
  结果每次运行程序都会得到不同的0100之间的随机数组三、具体代码
  起泡排序:Createarandomlist,sortitwithupwardsanddownwardssequenceincludeiostreamincludestdlib。hincludetime。husingnamespacestd;Bubblesort:Basicidea:Compareadjacentelementsinturn,smallergoup(upwardssort)andbiggergodown;orbiggergoup(downwardssort)Eachturnwecomparepositionandpositionnext,ifpositionanditsnextmeettherequests,wedontneedtodoitagainSothealgorithmcanbeoptimized:BecauseeachBubbleactuallyisswitchthevalueWecouldsetaBOOLvalueasakey,eachcompareinitializethekeytofalse,andaftercomparingturnittotrueAftercomparingcheckkeyvalue,ifitsvalueisfalseinterrupttheprogramBubbleSort1isupwardssortBubbleSort2isdownwardssortvoidExchange(inta,intb){inttemp;tempa;ab;btemp;}Swap()isaplacethatiseasytoignore。Exchangevaluesareexchangedaddresses,orexchangetheirrespectivereferences(alias)voidBubbleSort1(intnameList〔〕,intlengthList){intm0,n0;intlenlengthList;boolFlag;Threshold(key),ifacertaintimehasbeensorted,thereisnoneedtocontinuetotraversedownfor(inti0;ilen;i){m;Flagfalse;for(intjlen1;ji;j){if(nameList〔j〕nameList〔j1〕){n;Exchange(nameList〔j〕,nameList〔j1〕);Flagtrue;Aftertheexchangeisperformed,theboolvaluechanges}}if(!Flag)break;Iftheboolvaluehasnotchanged,thereisnoexchange,jumpingoutofthiscycle,thatistosay,thistimetheordermeetstherequirementsif(Flag!true)break;}coutSortthelistwiththeformatofupis:endl;for(inti0;ilen;i){coutnameList〔i〕;}coutBooltime:mnendl;Justlikethis:before:589637。。。。。(58)9637。。。。。5(89)637。。。。。58(69)37。。。。。586(39)7。。。。。5863(79)Round1finish。。。}voidBubbleSort2(intnameList〔〕,intlengthList){intm0,n0;intlenlengthList;boolFlag;for(inti0;ilen;i){m;Flagfalse;for(intjlen1;ji;j){if(nameList〔j〕nameList〔j1〕){n;Exchange(nameList〔j〕,nameList〔j1〕);Flagtrue;}}if(!Flag)break;}coutSortthelistwiththeformatofdownis:endl;for(inti0;ilen;i){coutnameList〔i〕;}coutBooltime:mnendl;}intmain(void){intlengthList;intFlag1;while(Flag){coutEnterthelengthofrandomlist(length10):;cinlengthList;if(lengthList10){Flag0;coutExitbyfaultinputendl;break;}else{intListnewint〔lengthList〕;srand((unsignedint)time(NULL));for(intindex0;indexlengthList;index){List〔index〕rand()1001;}coutOriginalsort:endl;for(intindex0;indexlengthList;index){coutList〔index〕;}coutUpwardssort:endl;BubbleSort1(List,lengthList);coutDownwardssort:endl;BubbleSort2(List,lengthList);coutType1tocontinueand0toexit:;cinFlag;}}return0;}
  选择法排序:UpwardsFirstround,findminimumvalueofList〔lengthlist〕,putitonfirstlocationindexSecondround,findminimumvalueofList〔lengthlist〕,putitonfirstlocationindex1。。。DownwardsFirstround,findmaximumvalueofList〔lengthlist〕,putitonfirstlocationindexSecondround,findmaximumvalueofList〔lengthlist〕,putitonfirstlocationindex1。。。includeiostreamincludestdlib。hincludetime。husingnamespacestd;voidExchange(inta,intb){inttemp;tempa;ab;btemp;}SelectionSort1()isupwardsSelectionSort2()isdownwardsvoidSelectionSort1(intnameList〔〕,intlengthList){intlenlengthList;intIndexmin;intm0,n0;for(inti0;ilen;i){m;Indexmini;for(intji1;jlen;j){n;if(nameList〔Indexmin〕nameList〔j〕){Indexminj;}}if(Indexmin!i){Exchange(nameList〔Indexmin〕,nameList〔i〕);}Supposethesequenceis:5286473Infirstroundtheminimumis2,i0,putitonlocation0,andthenewsequenceis:2586473Insecondroundtheminimumis3,i1,putitonlocation1,andthenewsequenceis2358647。。。。}coutTheupwardssortis:endl;for(intindex0;indexlengthList;index){coutnameList〔index〕;}coutendl;coutNumberofexecutions:mnendl;}voidSelectionSort2(intnameList〔〕,intlengthList){intlenlengthList;intIndexmax;intm0,n0;for(inti0;ilen;i){m;Indexmaxi;for(intji1;jlen;j){n;if(nameList〔Indexmax〕nameList〔j〕){Indexmaxj;}}if(Indexmax!i){Exchange(nameList〔Indexmax〕,nameList〔i〕);}Supposethesequenceis:5286473Infirstroundthemaximumis8,i0,putitonlocation0,andthenewsequenceis:8526473Insecondroundthemaximumis7,i1,putitonlocation1,andthenewsequenceis8752643。。。。}coutThedownwardssortis:endl;for(intindex0;indexlengthList;index){coutnameList〔index〕;}coutendl;coutNumberofexecutions:mnendl;}intmain(void){intlengthList;intFlag1;while(Flag){coutEnterthelengthofrandomlist(length10):;cinlengthList;if(lengthList10){Flag0;coutExitbyfaultinputendl;break;}else{intListnewint〔lengthList〕;srand((unsignedint)time(NULL));for(intindex0;indexlengthList;index){List〔index〕rand()1001;}coutOriginalsort:endl;for(intindex0;indexlengthList;index){coutList〔index〕;}coutendl;SelectionSort1(List,lengthList);coutendl;SelectionSort2(List,lengthList);coutType1tocontinueand0toexit:;cinFlag;}}return0;}
  以上就是第一篇关于最基础的两种排序算法的分享,大家还有什么想了解的可以打在评论区,我会逐一解答,以后也会多多分享这些资源。
  要走的路还很长啊,共勉!
  祝大家周末快乐!〔比心〕

美团被罚三十多亿冤不冤?一文带你搞懂美团这些套路美团被罚三十多个亿冤不冤?美团外卖确实改变了人们的饮食方式,给人以便捷,同时也带来了新的难题。其一、破坏实体经济,以补贴方式垄断,资本掠过商家都缴械投降任其宰割。最终还是转嫁到……江特电机业绩报不及预期锂电池反弹能持续【锂电池】昨天复盘的时候有分享过,就是新能源汽车的销售量和渗透率都是在向好的,另外车载芯片虽然依旧紧缺,但是是有所缓解的,这些对于新能源车来讲都是有利好的,所以有看到汽车……外卖已经渗透到了生活里,请正视它记得两三年前和部分商家聊过关于外卖的一些事情,大部分人还认为使用外卖的人群是收入相对比较可观的,大部分人还是消费不起外卖。可是这两年随着疫情的来临带来了很多变化,外卖开始走向主……华为手环6全网首发能否继承手表雄风,大杀四方?手环由于产品形态较为简单,要讲的点不会涉及太多。所以这篇文章,简单聊下产品卖点,以及购买建议(会简单提及和荣耀、小米的区别)产品卖点1。47英寸超大AMOLED屏H……篮球比赛中,为什么必须要把队服上衣勒进短裤里?一,篮球比赛的规定,为了整洁好看。二,为了不妨碍到篮球的运球,和投篮,而且也防止别人拉扯他的球衣。三,防止球衣太长,拉扯到手指,造成受伤!女生打篮球就像滚线团……日本共享雨伞归还率100网民直呼不可思议中新网4月3日电据香港《星岛日报》报道,近年全球兴起共享热潮,日本东京就有公司推出iKasa共享伞,让下雨没带雨伞的人,透过手机就能找到雨伞使用,不过令人更惊讶的是,iKasa……独立高防物理机超值特惠数量有限高防秒解BGP服务器24H32G240G固态50M独享超值价388月16H32G240G固态50M独享真实防御150GBGP超值价488月24……欧瑞博宣布完成新一轮十亿元融资来源:人民网近日,深圳市欧瑞博科技股份有限公司(欧瑞博ORVIBO)宣布正式完成新一轮融资,总投资金额十亿。欧瑞博相关负责人介绍,该公司定位以精益创新的产品路线和科……什么是手机上的NFC?NFC用途介绍现在越来越多的手机支持NFC功能。当然,很多人不知道NFC到底是什么。近场通信(NFC)是一种短距离无线技术。NFC具有移动支付、数据传输、信息浏览和访问控制等功能。……华硕今晚举行新品发布会带来了一系列新品灵耀X双屏Pro,一块15。6英寸4KOLED触摸屏一块14英寸4K触摸副屏,打开笔记本后,副屏会自动抬升9。5度,散热更好操作更舒服,搭载i911900HRTX3080,售价……OPPO新品发布会盘点,看完直呼太惊艳随着时间进入9月份中旬,数码圈也迎来一波新机发布的热潮。9月16日晚间,OPPO秋季新品发布会正式举行,带来了全新的ColorOS12,还有OPPOFindX3Pro摄影师版和……起底二类电商,做这行是有多暴利(三)首先我们已经定义了二类电商其实就是广告电商,通过视频广告链接或者文字广告链接精准定位可能有商品需求的用户,从而达到高转化率的广告效益,不懂得可以翻翻我上一篇文章但是广告是……
明基W1130投影真实色彩,支持侧投前言:明基W1130,经典升级明基的投影机产品在市场上一直颇受欢迎,其中W1120作为入门家用款上市以来获得了不错口碑。明基W1130作为W1120的升级款,提高了亮度,……N家对抗矿工的武器LHR技术现在这个时候对PC游戏玩家来说是一段艰难的时期。所谓GPU的短缺让显卡变得遥不可及,目前你能够选到的显卡都要付出更多的代价,而更糟糕的是,像比特币和以太坊这样的虚拟货币从今年年……刘媛媛曾是万人称赞的ampampquot寒门才女ampamp当年,在一档演讲节目中火爆全网的刘媛媛,你是否还记得?很多人说刘媛媛出身寒门,可她不赞同这个说法,她说她家穷得叮当响,连门都没有。这个倔强的女孩一直不屈服于命运,始终认为……golang2021面向对象(38)成员操作创建完成对象后,可以根据对象来操作对应成员属性,是通过。运算符来完成操作的。具体案例如下:由于Student继承了Person,所以Person具有的成员,Student……无线键盘选购的那些事从杜伽Fusion三模无线键盘聊起工欲善其事必先利其器,键盘作为一个输入工具对于游戏党、打工人来说是生活、工作中不可或缺的存在了。普通用户大多将就着9。9元包邮的薄膜,有点追求的玩家大多会考虑选一把手感不错的机……小米10Pro有何区别?四大升级,硬件更强,质感更好!今天,小米在线上发布了今年的数字系列新旗舰小米10系列,分别是小米10和小米10Pro。对于这次的新品,可以说还是很有料的,可能是米粉们期望高了,看完发布会觉得有些遗憾,高于以……银行短信业务该不该开通?多数人都想错了,还好有银行员工提醒很多人去银行开通银行卡的时候都会顺便开通一下短信业务,然而这项服务并不是免费的,而是每年都会收取相应的服务费,根据所办卡的类型不同收取的费用也会有所不同。很多人对于这一项业务收……win7系统电脑微信的多开设置方法相信很多深度技术的用户,都会使用到微信电脑版,但是有的小伙伴因为工作原因不止一个微信账户,我们都知道在安卓手机上可以实现多开微信。那小伙伴就想在win764位纯净版系统里面实现……提车汉5G丹拿前一阵子朋友说买了一辆电车,今天到4S店陪朋友一起提车,提了一辆汉5G丹拿。这款车子车身很长,车头非常漂亮。车长将近5米,车宽将近两米。轴距的话是将近三米,这款车腰线非常……带您了解2020年物联网领域内不可或缺的蓝牙模块物联网的多数智能控制的实现是建立在数据已知且支持命令下发的基础上,为实现这一功能,SKYLAB基于蓝牙无线通信技术研发推出多款支持数据采集,数据透传,指令下发的BLE蓝牙模块。……2018的第一场雪沿着雪后的西安城墙走回长安昨天开始的一场大雪,让西安一夜间变回了长安城。西安古风古韵的雪景早已经火爆网络,所以今年的第一场大雪后,就有很多游客不惧严寒,登上城墙,特意来欣赏长安雪景。雪后的西安城墙……失控玩家狂欢背后,我们渴求的是什么?浅谈辄止的文化现象和从业者的正名渴求上个周末,不少游戏圈的同行在朋友圈自来水般安利《失控玩家》,甚至有最懂玩家所想的赞誉。而根据新闻报道,本片连续两周登顶北美票房冠军,烂……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网