直接插入排序幻灯片.pptVIP

  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文档。上传文档
查看更多
徐洪章 8.2 直接插入排序 《数据结构》 计算机科学系 ? 教学内容: 1 、排序的基本概念 2 、直接插入排序算法的基本思想 3 、直接插入排序算法实现 4 、直接插入排序算法性能分析 ? 教学重点: 直接插入排序算法思想 ? 教学难点: 算法实现及性能分析 ? 教学过程 学号 姓名 学习成绩 思想政治 总分 奖学金等次 1008 XXX 262 29 291 1 1005 XXX 250 29 279 2 1003 XXX 249 28 277 2 1002 XXX 248 28 276 2 1006 XXX 243 28 271 3 1007 XXX 242 27 269 3 1001 XXX 231 27 258 3 1004 XXX 211 27 238 3 … … … … … … 8.2.1 排序概念 排序 无序 数据 有序 数据 排序算法主要有: 直接插入排序 、希尔排序、冒泡排序、快速排 序、直接选择排序、堆排序、归并排序等。 8.2.2 直接插入排序基本思想 21 25 49 36 16 08 i … n-1 数组下标 数组 R 有序区 无序区 13 无序区第 1 个元素 … … 0 … i-1 如何确定 插入位置 ? 关键问题 21 25 49 36 08 13 排序过程 临时变 量 temp 16 5 4 3 2 0 1 … n-1 下标 … 流程图 (tempR[j])(j=0) 开始 temp=R[i] j=i-1 循环判断 R[j+1]=R[j] j-- R[j]=temp N Y 结束 将无序区中的第一个元 素放到临时变量中 j 表示有序区中的最后 一个元素的位置 将当前元素向后移动 有序区中比较下一个 找到插入位置后将第 1 个元素插入 8.2.3 算法实现 for (i=1;in;i++){ // 插入所有元素 Void insertsort(arrayType R[],int n){ int i,j,temp; temp=R[i]; // 将待排序元素放入临时变量 while( (tempR[j])(j=0) ){ R[j+1]=R[j]; // 元素向后移动 j--; // 向左继续查找 } R[j+1]=temp; // 将元素插入相应位置 } j=i-1; // 从 R[i-1] 开始向左查找 } ? 评价排序算法好坏的标准: 一、 时间复杂度 - 算法执行所需要的时间 ( 比较次数 和移动次数 ) 二、 空间复杂度 - 算法执行所需要的辅助空间个数 主要考虑 次要考虑 for (i=1;in;i++){ Void insertsort(arrayType R[],int n){ int i,j,temp; temp While( ){ R[j+1]=R[j]; j--; } R[j+1]= ; } j=i-1; } =R[i]; R[0] 2 R[0] temp (tempR[j])(j=0) R[0]R[j] 浪费时间 第一 进入循环之前,保存 R[i] 的值 第二 在 while 循环中“监视”下标 是否越界。 监视哨 使用 R[0] 的意义 8.2.3 改进后 算法 insertsort(R){ int i,j; for ( ;in;i++){ j=i-1; { R[j+1]=R[j]; j--; } ; } } R[0] =R[i]; while (R[0]R[j]) R[j+1]= R[0] i=2 8.2.4 性能分析 21 25 49 36 16 08 13 ? ? ? ? ? ? 1 1 1 n i n 1 ) ( C(n) 比较次数 1 、理想情况 ? ? ? ? ? ? 1 1 1 n i n 2 ) ( 2 M(n) 移动次数 ? ? ? ? ? ? ? 1 1 2 2 1 n i n n n i / / ) ( ) ( C 2 n 比较次数 2 、最坏情况 21 25 49 36 16 08 13 ? ? ? ? ? ? ? ? ? 1 1 2 2 1 n i n n 2 n 2 i / / ) ( ) ( M 2 ) ( ) ( 移动次数 n

文档评论(0)

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

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

1亿VIP精品文档

相关文档