保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

05算法入门教程希尔排序

  1。前言
  本节内容是排序算法系列之一:希尔排序,主要讲解了希尔排序的主体思路,选取了一个待排序的数字列表对希尔排序算法进行了演示,给出了希尔排序算法的Java代码实现,帮助大家可以更好的理解希尔排序算法。2。什么是希尔排序?
  希尔排序(ShellSort),是计算机科学与技术领域中较为简单的一种排序算法。
  希尔排序是插入排序的一种,有时候也被称为缩小增量排序。它是插入排序的改进版,与插入排序的不同之处在于,希尔排序会优先比较距离较远的元素。希尔排序是按照其设计者希尔(DonaldShell)的名字命名而来,并于1959年公布出来。3。希尔排序过程
  在介绍完希尔排序之后,我们一起来看一下希尔排序的实现步骤具体是什么样的吧。这里我们假设待排序的序列为〔9,2,11,7,12,5〕,我们按照从小到大的序列进行排序。3。1算法步骤步骤1:
  选择一个增量序列k1,k2,km,其中k1k2km1,即增量序列大小依次减小,并且最后一个增量序列大小为1。步骤2:
  按照增量序列的个数m,对整个待排序序列进行m趟排序。步骤3:
  每一趟排序,根据对应的增量ki,需要将待排序的序列分成对应长度的子序列,分别在子序列上面进行直接插入排序。当且仅当增量序列为1时,整个序列作为一个整体处理。
  其实,上面的步骤1和步骤2都是在排序之前进行的处理,选择对应的增量。上面的步骤3每执行一次,就相当于是进行了一次插入排序,只是每次都会选择一个增量,将整个待排序序列按照增量进行划分,然后在对应增量上面进行插入排序。接下来,让我们用上面的待排序数字队列〔9,2,11,7,12,5〕进行整个算法步骤的排序演示工作。3。2算法演示
  按照2。1节的排序步骤,我们需要先选择对应的希尔排序中的增量值,按照一般性的原则,我们可以将增量按照待排序的序列长度依次整除2,直到增量为1停止,得到对应的增量。如下:623,321依次获得增量值3,1,除法取整
  接着,我们调用2。1中的步骤2,步骤3,按照增量值的取法,依次进行对应序列的插入排序,首先我们取增量值为3,对应排序示例如下:〔9,2,11,7,12,5〕〔9,7〕,〔2,12〕,〔11,5〕增量取3,整个待排序序列按照增量为3进行分组,分成3组,依次排序〔9,7〕,〔2,12〕,〔11,5〕〔7,9〕,〔2,12〕,〔5,11〕对应增量位置进行排序〔7,9〕,〔2,12〕,〔5,11〕〔7,2,5,9,12,11〕完成第一次的对应增量的排序过程
  Tips:希尔排序过程中会每次选择一个增量值,然后将待排序列表按照增量值进行分组,对应的分组内部进行插入排序。
  在完成增量为3的插入排序之后,我们接着进行增量为1的插入排序,这个步骤其实跟我们之前的插入排序步骤完全一致。整个过程如下:〔7,2,5,9,12,11〕〔7〕;〔2,5,9,12,11〕插入排序初始化,选择第一个元素作为排序好的序列〔7〕;〔2,5,9,12,11〕〔2,7〕;〔5,9,12,11〕选择未排序元素2,插入排序好的序列〔7〕形成新的排序好序列〔2,7〕〔2,7〕;〔5,9,12,11〕〔2,5,7〕;〔9,12,11〕选择未排序元素5,插入排序好的序列〔2,7〕形成新的排序好序列〔2,5,7〕〔2,5,7〕;〔9,12,11〕〔2,5,7,9〕;〔12,11〕选择未排序元素9,插入排序好的序列〔2,5,7〕形成新的排序好序列〔2,5,7,9〕〔2,5,7,9〕;〔12,11〕〔2,5,7,9,12〕;〔11〕选择未排序元素12,插入排序好的序列〔2,5,7,9〕形成新的排序好序列〔2,5,7,9,12〕〔2,5,7,9,12〕;〔11〕〔2,5,7,9,11,12〕选择未排序元素11,插入排序好的序列〔2,5,7,9,12〕形成新的排序好序列〔2,5,7,9,11,12〕
  Tips:增量为1时候执行步骤3,实际上就是执行一次插入排序,只是在执行插入排序之前,之前的序列在一定程度上面已经进行了插入排序,所以在增量为1的插入排序过程中可以减少插入时候比较的次数,从而可以在一定程度上面减少算法的运行时间。
  从上面的示例可以看出,其实整个希尔排序的过程,就是根据增量大小依次进行插入排序,本质上还是针对插入排序的一种优化。4。Java代码实现
  在说明希尔排序的整个过程之后,接下来,我们看看如何用Java代码实现希尔排序算法。importjava。util。Arrays;publicclassShellSort{publicstaticvoidmain(String〔〕args){初始化需要排序的数组intarray〔〕{9,2,11,7,12,5};初始化希尔排序的增量为数组长度intgaparray。length;不断地进行插入排序,直至增量为1while(true){增量每次减半gapgap2;for(inti0;igap;i){内部循环是一个插入排序for(intjigap;jarray。length;jgap){inttemparray〔j〕;intkjgap;while(k0array〔k〕temp){array〔kgap〕array〔k〕;kgap;}array〔kgap〕temp;}}增量为1之后,希尔排序结束,退出循环if(gap1)break;}打印出排序好的序列System。out。println(Arrays。toString(array));}}
  运行结果如下:〔2,5,7,9,11,12〕
  代码中的第8行初始化一个需要排序的数组,后面按照从小到大的排序规则,实现了数组的排序。第12行至30行是整个希尔排序的流程。第14行代码表示希尔排序中的增量每次整除2取得,第17行至25行是一个for循环结构,表明按照增量进行插入排序。最后第32行代码输出排序好的数组。5。小结
  本节主要学习了希尔排序算法,通过本节课程的学习,需要熟悉希尔排序的算法流程,知道希尔排序算法的实现思路,可以自己用代码实现希尔排序算法。至此,我们已经学习了排序算法中的冒泡排序、插入排序、选择排序、希尔排序。

开学第一天的噩梦作文今天是寒假之后开学的第一天,这学期我一定要努力!可是寒假里我晚上比平时晚睡了几个小时,早上也起的晚,生物钟没转回来,所以我晚上老是睡不着,早上也无精打采的,不过想到可以和好哥们……FlaskDay11安装pipinstallflask2运行hello,worldfromflaskimportFlaskappFlask(name)创建实例app。route()route装饰……应届生AI人工智能算法岗必备硬核实力本人硕士毕业后一直从事AI算法,呆过华为2012实验室,虾皮等公司,也当过一段时间面试官,pass过不少人,根据自身经历浅谈一下什么样的人适合从事AI人工智能算法岗【学历……币圈近日要闻比特币NFT交易将破8000亿区块链最有趣webNFT市场交易量预计将在未来两年内超过8000亿美元根据Coingecko的一份报告,NFT市场交易量预计将在未来两年内超过8000亿美元。该报告主要调查了来自亚太地区的……我是劳动小能手作文300字我的心里想:原来妈妈做家务这么辛苦呀!要是妈妈再做家务,我会和妈妈一起做家务的。小编收集了我是劳动小能手作文,欢迎阅读。第一篇:我是劳动小能手休息天,我吃过中饭坐在……安徽省智能软件园今年下半年开工总投资8亿元新安晚报安徽网大皖新闻讯记者从合肥蜀山区获悉,蜀山经开区将依托智能制造、数字经济等产业发展,在运河新城板块SG202201号地块建设安徽省智能软件园项目。项目总投资额约8亿元,……昇辉科技坚持智能双碳战略一季度营收净利双增长中证网讯(王珞)4月28日,昇辉科技发布2022年第一季度报告。报告期内实现营收5。50亿元,同比增长12。48;归母扣非净利润5567。53万元,同比增长5。69。根据……游李白文化园作文从小到大,我们ldquo;咿咿呀呀rdquo;地吟诵他的诗。从ldquo;床前明月光rdquo;到ldquo;君不见黄河之水天上来rdquo;,我们无不以仰视的态度对待这位伟大……生物的启迪感悟作文生物圈的生物多种多样,天上飞的,地上跑的,水里游的,无所不有,生物的世界十分奇妙我们人类也在各种各样的生物身上得到了一些启迪,通过这些启迪,人们造出了许多高科技产品,归根结底还……心中的美景小学作文550字不管是生活在喧闹的都市,还是在宁静的乡村,每个人对大自然都有一份浓浓的向往、依恋之情,每个人心里都有一幅属于自己的自然图景。画面上也须有万顷碧绿,也许有林间晓月,也许有当空皓月……小白兔的老虎爪的想象作文在一片茂盛的树丛中,有着一家小白兔,它们每天都快快乐乐地生活在树丛中。有一天,小白兔遇上了一只大老虎,大老虎看见了一只小白兔,摸摸自己的肚子说了:刚刚好我的肚子饿了,那你……洗心革面一词如何造句洗心革面一词比喻彻底悔改,如何用洗心革面造出比较好的句子呢?下面品学网网小编为您带来洗心革面的造句,大家可以一起参考学习。洗心革面的解释〔释义〕洗心:消除邪恶的思想;革面……
信念演讲稿各位领导,各位来宾:下午好!我演讲的题目是《信念的力量》。有这样一种力量,它可以使人在黑暗中不停止摸索,在失败中不放弃奋斗,在挫折中不忘却追求。在它面前,天大的困难……我快乐的一天作文100字导读:快乐其实是一种很简单的东西,只要我们用一颗快乐的心去体验,你会发现它随时随刻都在你的身边围绕,让你时刻感受着温暖,处处可以体验到快乐的。那么下面小编就为大家带来我快乐的一……坚守诚信的岗位作文诚信是每个人都应该遵守的,在学习、生活点点滴滴的事情上,我也恪守诚信,遵守诺言。星期三的一节数学课,老师讲看图找关系,并且布置了一项作业,每个学习小组制作一幅关系图,并编……电脑机箱故障问题详细解析,手把手教你解决机箱故障问题电脑机箱电源常见故障有电源输出但开机无显示,下面我们来解析这个问题问题解析:分析与解决:出现此故障的可能原因是POWERGOOD输入的RESET信号延迟时间不够,或……共享单车第一股要凉?永安行受哈啰拖累2021年利润降九成现金财联社(南京,记者武超)讯,作为新经济四大发明之一,共享单车经过白热化的市场竞争后,较先进入发展的瓶颈阶段。共享单车第一股永安行(603776。SH)年报显示,2021年净利润……以父爱为题目的中学作文900字有一种爱,是无声的;有一种爱,是严肃的。它就是那宽广无边的父爱。父爱,它好像白酒,辛辣而又热烈,容易让人醉在其中;它又像咖啡一般,苦涩又醇香,容易让人为之心动;它还像茶,……关于珍惜所拥有的幸福作文600字汇总十篇在平日的学习、工作和生活里,大家都写过作文吧,作文是由文字组成,经过人的思想考虑,通过语言组织来表达一个主题意义的文体。你知道作文怎样才能写的好吗?下面是小编为大家整理的珍惜所……群联PC客户已接受SSD涨价,涨幅约10IT之家4月14日消息,据台湾经济日报报道,SSD主控大厂群联今日举行了技术论坛,CEO潘健成指出铠侠与西部数据污染事件已影响NAND供给面,本月PC客户已接受SSD涨价,涨幅……全国五一劳动奖评选结果出炉新就业形态劳动者为何备受关注?中国网科技4月29日讯(记者杨月月)五一前夕,中华全国总工会公布了今年全国五一劳动奖和全国工人先锋号评选表彰结果,一批货车司机、网约车司机、快递员、外卖配送员等新就业形态劳动者……哲理故事眉毛与肚皮古时候,有位宰相请理发师给他修面,那理发师修面修到一半时,忽然停下刮刀,两眼直愣愣地看着宰相的肚皮。宰相见理发师傻乎乎发愣的样子,心里很是纳闷:这肚皮有什么好看的呢?就问……国际最新研究到2070年气候变化将致1。5万次跨物种病毒传播中新网北京4月29日电(记者孙自法)国际著名学术期刊《自然》最新在线发表一篇流行病学论文指出,在气候变化的推动下,预计到2070年至少会发生1。5万次新的跨物种病毒传播。这些增……python之多态继承重写篇coding:UTF8classAnimal:defrun(self):print(动物会跑)defsleep(self):print(动物会睡觉)classDog:defru……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网