数据结构课件:冒泡排序的改进.pptxVIP

数据结构课件:冒泡排序的改进.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

冒泡排序的改进

冒泡排序回顾交换排序的主要操作是交换主要思想是:在待排序列中选两个记录,将它们的关键码相比较,如果反序(即排列顺序与排序后的次序正好相反),则交换它们的存储位置。

改进1问题1:传统的冒泡排序算法存在的问题?

如何判别冒泡排序的结束?测试数据普通冒泡1,2,3,4,5,6,7,8,9,1010,9,8,7,6,5,4,3,2,110,1,2,3,4,5,6,7,8,92,1,3,4,5,6,7,8,9,101,2,3,4,5,6,7,8,10,92,1,3,4,5,6,7,8,10,92,3,4,5,6,7,8,9,10,12,1,7,9,5,6,4,8,10,3不论正序、逆序,都需要进行n-1趟扫描。改进1:增设一个变量exchange来记录是否发生交换,如果未发生交换即终止循环继续。算法描述:boolexchange=true;inti=1;while(exchange){exchange=false;for(j=0;jn-i;j++) if(r[j]r[j+1]) {temp=r[j];r[j]=r[j+1];r[j+1]=temp;exchange=true;}i++;}

改进2问题2:对于2,1,3,4,5,6,7,8,9,10,要进行多少次比较?如何确定冒泡排序的范围?仍要进行9+8=17次比较改进2:前一改进中,变量exchange用于标记是否发生了交换,实际上我们还可以考虑用其记录发生交换的位置,以进一步提高算法的处理效率。处理1:exchange记载这一趟排序中记录的最后一次交换的位置,且从此位置以后的所有记录均已经有序。算法描述:if(r[j]r[j+1]){r[j]←→r[j+1];exchange=j;}

改进2处理2:设bound位置的记录是无序区的最后一个记录,则每趟冒泡排序的范围是r[1]~r[bound]。在一趟排序后,从exchange位置之后的记录一定是有序的,所以bound=exchange。算法描述:bound=exchange;for(j=0;jbound;j++) if(r[j]r[j+1]){r[j]←→r[j+1];exchange=j;}

改进312345需扫描趟154321需扫描趟51234需扫描趟23451需扫描趟造成不对称的原因是什么?问题3:如何改变不对称性?n-12n-1

改进323451增加2个记录位,双向记录发生交换的最后位置,在排序过程中交替改变扫描方向——双向冒泡排序2341512345

练一练请完成上述3个冒泡排序算法的改进程序,并在程序中增加统计比较次数的语句,填写完成下表。测试数据普通冒泡冒泡改进1冒泡改进2冒泡改进31,2,3,4,5,6,7,8,9,104510,9,8,7,6,5,4,3,2,14510,1,2,3,4,5,6,7,8,9452,1,3,4,5,6,7,8,9,10451,2,3,4,5,6,7,8,10,9452,1,3,4,5,6,7,8,10,9452,3,4,5,6,7,8,9,10,1452,1,7,9,5,6,4,8,10,345改进算法的时间复杂度?

文档评论(0)

ning2021 + 关注
实名认证
文档贡献者

中医资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档