常用的数据结构和算法8.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
专业教程 理论讲解部分 Ver3.1 第029课 算法及数据结构 概述: 选择排序 冒泡排序 插入排序 重点: 难点: 插入排序 各种排序 7 排序 第029课 算法及数据结构 排序是算法中很重要的一个环节.很多查询的基础就是排序. 例如,前面讲的树的插入,就是一种插入排序. 排序不但能在数据结构创建,成长是使用,更多的是在已有的杂乱无章的结构中使用. 关于排序的算法非常多,而且各有优缺点.下面介绍3种排序方法分别为: 选择排序 冒泡排序 插入排序 第029课 算法及数据结构 7.1 选择排序 选择排序的主要思想是寻找未排序中最小的元素加入到已有序列,直到未排序序列为空. 4 6 5 3 7 1 8 2 有一无序数组,如下: 现按照选择排序的规则进行升序排序. 7 排序 第029课 算法及数据结构 4 6 5 3 7 1 8 2 现将该数组分为两个部分,第一部分为有序部分,第二部分为无序部分. 在初始时,有序部分的元素数量为0,全部为无序部分. 7.1 选择排序 7 排序 第029课 算法及数据结构 4 6 5 3 7 1 8 2 首先在无序部分中寻找最小元素所在的位置. 然后将其与第一位的元素交换 1 6 5 3 7 4 8 2 7.1 选择排序 7 排序 第029课 算法及数据结构 其余的按照上述方法继续执行 1 6 5 3 7 4 8 2 1 6 5 3 7 4 8 2 此时,可以明显看到以排序部分与无序部分. 7.1 选择排序 7 排序 第029课 算法及数据结构 1 2 5 3 7 4 8 6 1 2 5 3 7 4 8 6 1 2 3 5 7 4 8 6 7.1 选择排序 7 排序 第029课 算法及数据结构 1 2 5 3 7 4 8 6 1 2 5 3 7 4 8 6 1 2 3 5 7 4 8 6 7.1 选择排序 7 排序 第029课 算法及数据结构 直到进行到所有无序部分的元素都被排序 1 2 3 4 5 6 7 8 此时排序完成 选择排序的特点是查询次数较多,元素位置变换较少,比较适合易于查询而移动较复杂的数据. 7.1 选择排序 7 排序 第029课 算法及数据结构 9.7.1 选择排序 public void selectCompositor(){ int smaller; for(int i = 0 ;idata.length-1;i++){ smaller = i; for(int j = i+1;jdata.length;j++) if(data[smaller]data[j]) smaller = j; if(smaller != i){ int tempData = data[smaller]; data[smaller] = data[i]; data[i] = tempData; } } } 保存查询中较小的数的位置 i分隔以排序与无序部分 在未排序部分寻找最小值 将寻找到的最小值与其相应位置的元素交换 7.1 选择排序 7 排序 第029课 算法及数据结构 7.2 冒泡排序 冒泡排序组要的思想是进行相邻的两个元素之间比较并且交换.有利于利用原有元素在集合中的位置优势. 4 6 5 3 7 1 8 2 冒泡排序的原则是大的下沉小的上浮. 7 排序 第029课 算法及数据结构 4 6 5 3 7 1 8 2 第一轮的排序 首先比较前两个元素,如果顺序与升序相反则交换,否则什么也不作 然后,依次比较第二位与第三位,第三位与第四位,….. 4 6 5 3 7 1 8 2 4 5 6 3 7 1 8 2 7.2 冒泡排序 7 排序 第029课 算法及数据结构 4 5 3 6 7 1 8 2 第一轮的排序 4 5 3 6 7 1 8 2 4 5 3 6 1 7 8 2 4 5 3 6 1 7 8 2 4 5 3 6 1 7 2 8 7.2 冒泡排序 7 排序 第029课 算法及数据结构 第一轮的排序 4 5 3 6 1 7 2 8 此时,第一轮排序完毕,它能够使最大数沉到最底端.然后进行第二轮的排序.每一轮排序能够确保其最大数沉到相应位置.经过元素个数减一次的排序会生成有序数组. 1 2 3 4 5 6 7 8 7.2 冒泡排序 7 排序 第029课 算法及数据结构 public void maopaoCompositor(){ int temp; for(int i = 0;idata.length-1;i++){ for(int j = 0;jdata.length-i-1;j++){ if(data[j]data[j+1]){ temp

文档评论(0)

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

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

1亿VIP精品文档

相关文档