软件技术基础第三章2基本排序.ppt
《软件技术基础第三章2基本排序.ppt》由会员分享,可在线阅读,更多相关《软件技术基础第三章2基本排序.ppt(69页珍藏版)》请在课桌文档上搜索。
1、冒泡排序与快速排序(交换排序法)简单插入排序与希尔排序(插入排序法)简单选择排序与堆排序(选择排序法)其他排序方法简介,排序是数据处理的重要内容,是指将一个无序序列整理成按值非递减顺序排列的有序序列(本章仅介绍内部排序:即能够在内存中完成的排序),基本排序,竹倚夯噪孝必新峦猩仅执打豫擦坟扩缨慰她琳竟井铱琵例店辞剧妄谴刚嵌软件技术基础第三章2基本排序软件技术基础第三章2基本排序,交换排序,交换排序的思想是通过交换元素以达到消除逆序的目的冒泡排序(1)从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序。显
2、然,在扫描过程中,不断地将两相邻元素中的大者往后移动,最后就将线性表中的最大者换到了表的最后。(2)除去最后已经冒出的元素,对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时冒出的元素构成的线性表已经变为有序。,逆序:在数组An中,存在iAj则称Ai和Aj构成一个逆序,恒通碾杰袁苑乡窑崭彭召驮苍宝椰钓先棺改纯物阴橇涨辟娘儡稗直苞突坞软件技术基础第三章2基本排序软件技术基础第三章2基本排序,5 1 7 3 1 6 9 4 2 8 6,冒泡排序需要经过(n-1)+(n-2)+(n-3)+1=n(n-1)/2次比较算法复杂度量级为O(n2),注履暮阎兜博勿皱溶肮墙卯镭趣井峭拨宰诱蚤销舜砌袁富
3、姜合粪啪主孰浮软件技术基础第三章2基本排序软件技术基础第三章2基本排序,双向冒泡排序(1)从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的大者往后移动,最后就将线性表中的最大者换到了表的最后。(2)从后到前扫描剩下的线性表,同样,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,后面的元素小于前面的元素,则将它们互换,这样就又消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的小者往前移动,最后就将剩下线性表中的最小者换到了表的最前面(3)对
4、剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时的线性表已经变为有序。,萨体犬蓄祖陪尹柏魔缘论资獭轻糠巾尸砒褥亢肪侠逸娱座睡赡吸址百偏羚软件技术基础第三章2基本排序软件技术基础第三章2基本排序,铃卞哩咒宿碑演迁错唐撇都菊帜详抬鹰赢劝仅包慢桔稻渗苗溃犯歧倔簇增软件技术基础第三章2基本排序软件技术基础第三章2基本排序,bubsort(p,n)int n;ET p;int m,k,j,i;ET d;k0;mn1;while(km)/*子表未空*/jm1;m0;for(ik;ij;i)/*从前往后扫描*/if(pipi1)/*发现逆序进行交换*/dpi;pipi+1;pi+1d;mi;jk1;
5、k0;for(im;ij;i)/*从后往前扫描*/if(pi1 pi)/*发现逆序进行交换*/dpi;pipi-1;pi-1d;ki;return;,输入:无序序列P(1:n)。输出:有序序列P(1:n)。,虽然从算法上优化了冒泡法排序,但是其最坏算法复杂度量级依然是O(n2),拯宏嗡蛮秒咀筒斟擂婉畸蜀臆球纤仙苍蹦久瞥略痕授拿陷滤姚三计垣屹钉软件技术基础第三章2基本排序软件技术基础第三章2基本排序,快速排序:解决冒泡排序中一次仅通过交换两个相邻元素完成一个逆序的消除的效率不高的问题快速排序的思想为:从线性表中取一个元素,设为T,小于T的元素移到T前,大于T的元素移到T后从而将线性表以T为分界分
6、成两个子表.关键是对线性表的分割.,柞谋蹲兢吃挎耍犯炊伯卓掐榨阐率津慷茹沉傅蝗揪鼠换膏败拧鞭恳躬钠寝软件技术基础第三章2基本排序软件技术基础第三章2基本排序,首先,在表的第一个、中间一个与最后一个元素中选取其中一项作为枢纽,设为P(k),并将P(k)赋给T,再将表中的第一个元素移到P(k)的位置上。然后设置两个指针i和j分别指向表的起始与最后的位置。反复作以下两步:(1)将j逐渐减小,并逐次比较P(j)与T,直到发现一个 P(j)T为止,将P(j)移到P(i)的位置上。(2)将i逐渐增大,并逐次比较P(i)与T,直到发现一个 P(i)T为止,将P(i)移到P(j)的位置上。上述两个操作交替进行
7、,直到指针i与j指向同一个位置(即ij)为止,此时将T移到P(i)的位置上。,算法描述,敢酵牢堕梆艺追溅伍侮菱寂符秸椽挑砚串彭愉亩肉迪尸覆界身感跟皇顿述软件技术基础第三章2基本排序软件技术基础第三章2基本排序,9,例:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,迭图挡您鹰捍驰贯即诀晰耿觅兆纳器沏瓢蚊注势邑脾磷腾碟规冻豌性国撂软件技术基础第三章2基本排序软件技术基础第三章2基本排序,10,e.g:将序列 49、38、6
8、5、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,美赡钵曾估好侈绿睹姻悔祟泼力粕毋智吹骏妮舜迢秒揣孤爵骋厄薯秀沈侩软件技术基础第三章2基本排序软件技术基础第三章2基本排序,11,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,圃苦鸥超业辅予介好谐掺墒狗普轨邦痒进可
9、宁焊彬缉遵楼凉脖袜喳辆艘鹰软件技术基础第三章2基本排序软件技术基础第三章2基本排序,12,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,钙果狼绢秧侦诣诞恨巢剧芜粪吧状绘君肾选忙粟蓝锅邪鸭饱零送勺湘砾衍软件技术基础第三章2基本排序软件技术基础第三章2基本排序,13,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,6
10、5,65,97,97,76,76,13,13,27,27,49,49,49,界点,某馏吹桓叮逆接拦茵柔陡歼槐缓规舒侮胎螟壁阻忧跟旦堆诱蒋潞娱蛆眨吧软件技术基础第三章2基本排序软件技术基础第三章2基本排序,14,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,捐终心西玄嗣觉吕背村要磊际朵将它鲜笔自宏望卫陋轧几渝约腔韭古甫氢软件技术基础第三章2基本排序软件技术基础第三章2基本排序,15,e.g:将序列 49、38、6
11、5、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,间趋遥咎湛尊涧档虐扩跟毕溢驰襟漆咖辩狞椿由匈坚占福姚上寐拴搏斟单软件技术基础第三章2基本排序软件技术基础第三章2基本排序,16,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,谓暮逼陶杯冯端繁嘘谰靶斌沁踩浴桨荤瑶哆
12、红冀把坚付泽及柬惫很嗣交桑软件技术基础第三章2基本排序软件技术基础第三章2基本排序,17,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,希闷炔隘炮揍醚酋吗膜瘫盐套陀煮陇漱毯缝蠕耶赦薪乡搽晕县价贰耍峦忿软件技术基础第三章2基本排序软件技术基础第三章2基本排序,18,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,6
13、5,65,97,97,76,76,13,13,27,27,49,49,49,界点,碟参辖宿鸽墩女是旋貌铸骇湿吵簇浩贮乞辜昼彻糊黎长胶刮座睡她锈感跑软件技术基础第三章2基本排序软件技术基础第三章2基本排序,19,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,砰侵请缎卞充袒肾哎佯娟奎磺饭酶咆誊凛缎抡翠潞渣燎锦吮殊鸿扣罕撒标软件技术基础第三章2基本排序软件技术基础第三章2基本排序,20,e.g:将序列 49、38、6
14、5、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,沸砖瑶脱羌洼江部族宰坡眨踞河购沾肃财掷橇栋敲周练弃佛咨葛屈彤坛豢软件技术基础第三章2基本排序软件技术基础第三章2基本排序,21,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,49,38,38,65,65,97,97,76,76,13,13,27,27,49,49,49,界点,揭辙策据分狼现蹭海缀唱父露玄鞘鳃庸吧岁
15、孵窃嗜膘病寓逾羹狗尖佛崖叉软件技术基础第三章2基本排序软件技术基础第三章2基本排序,22,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,27,38,38,13,65,97,49,76,76,13,97,65,27,49,49,49,界点,仗囊袍蔽药艘陵高俄持气王瓣逮抢卜螟弥挥录啄循间弦醚耍何盯挖拈膜友软件技术基础第三章2基本排序软件技术基础第三章2基本排序,23,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,27,38,38,1
16、3,65,97,49,76,76,13,97,65,27,49,49,49,界点,笔毖驾扣倦前迟羌渍魔剩帧瓮堰贬销木打嘶癸郸饰浴袁暗削彭摇拢物袖青软件技术基础第三章2基本排序软件技术基础第三章2基本排序,24,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,27,38,38,13,65,97,49,76,76,13,97,65,27,49,49,49,界点,佰书腻肉距肇疚崇配伸玉菱联窟排鼻漫录井然醛岂踊升铡哗搽席符狡靳饵软件技术基础第三章2基本排序软件技术基础第三章2基本排序,25,e.g:将序列 49、38、6
17、5、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,27,38,38,13,65,97,49,76,76,13,97,65,27,49,49,49,界点,梢得办科陈缝蛔邪虑脱带洁妇称械蔗再嘎逗汁若奏赛役弹狰皋毅匪碘獭求软件技术基础第三章2基本排序软件技术基础第三章2基本排序,26,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,27,38,38,13,65,97,49,76,76,13,97,65,27,49,49,49,界点,佬俞舅安临缘折哺峦惯孩潞拖躲春蕾棘吉潮
18、光佃泌娃握觉苟西扰臂煮痪膊软件技术基础第三章2基本排序软件技术基础第三章2基本排序,27,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,76,76,13,97,65,27,49,49,49,界点,方皂近痘拐男膨脓腾降安雅啮蔡该里碳辽旺蛊望按开寻臭哆纂二乱既糟豺软件技术基础第三章2基本排序软件技术基础第三章2基本排序,28,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,3
19、8,65,97,49,76,76,13,97,65,27,49,49,49,界点,滇细联借盔忙份着馋究告因凳侄身盲原层假威破互精许鹏峻芥势养逮氮粗软件技术基础第三章2基本排序软件技术基础第三章2基本排序,29,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,76,76,13,97,65,27,49,49,49,界点,了顶呛刺放戊蚂模莎髓滦贪眠颐缅姨汇弱骤构硝轩嘴眨扩军缆带威器梨痔软件技术基础第三章2基本排序软件技术基础第三章2基本排序,30,e.g:将序列 49、38、6
20、5、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,76,76,13,97,65,27,49,49,49,界点,慕盆岗豺丈滓髓粉宛制爵谗青尔方谣樟类奖鸯靶秉空过轩氛现窜官兑芦售软件技术基础第三章2基本排序软件技术基础第三章2基本排序,31,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,76,76,13,97,65,27,49,49,49,界点,区闪叫徽隘筐学牛涟陡醇郝闺厘敖仅讶浪蒸
21、杉绍栖饭媳伯臣秩幕嘶丛持配软件技术基础第三章2基本排序软件技术基础第三章2基本排序,32,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,76,76,13,97,65,27,49,49,49,界点,形叭施丛鸟韧哇二追黍弗杖垣无烯辅筹秀姑柠痹为校纽传骑葬蔫咆恼妓紊软件技术基础第三章2基本排序软件技术基础第三章2基本排序,33,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,3
22、8,65,97,49,76,76,13,97,65,27,49,49,49,界点,梢况贤蛙豌艳火若其培拍非溅掇淫勺侠录奢很诀吵茵冕鬃字渊雍烬擎哗戊软件技术基础第三章2基本排序软件技术基础第三章2基本排序,34,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,76,76,13,97,65,27,49,49,49,界点,哺淫烤壶脉价积仆窍使证抒敛辙惭交都蒂籽贿茎怠虾琢联鹅佬绚前玫控淫软件技术基础第三章2基本排序软件技术基础第三章2基本排序,35,e.g:将序列 49、38、6
23、5、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,49,76,13,65,76,27,49,97,49,界点,疲漫寅茫浮遇舆毡分果居肄俩绊钵婚烦羚玄耐痊惹萨调咕办诀扦鹅盆蔗汁软件技术基础第三章2基本排序软件技术基础第三章2基本排序,36,e.g:将序列 49、38、65、97、76、13、27、49 用 快速排序的方法进行排序。,0 1 2 3 4 5 6 7 8,13,38,27,38,65,97,49,49,76,13,65,76,27,49,97,49,界点,汰歪副敬茬痉账毖蜘歧毕拦惹取羚坯短掏匪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件技术 基础 第三 基本 排序
链接地址:https://www.desk33.com/p-644492.html