第12课 内部排序——交换类资料.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 交换类排序 本课内容 1.冒泡排序 2.快速排序 (重点) 要求掌握: 算法思想 排序过程演练 算法的C函数描述 算法分析(时间、空间、稳定性、适用性) * * 9.3 交换排序 利用交换记录的位置进行排序的方法称为交换排序。 其基本思想是: 两两比较待排序记录的关键字,如果逆序就进行交换,直到所有记录都排好序为止。 常用的交换排序方法主要有: 冒泡排序和快速排序。 * * 逆序概念 指两个记录相对位置不符合规定的排序要求。 如对于升序排序,当ij时 若r[i].key=r[j].key,则为正序 若r[i].keyr[j].key,则称为逆序 当一个待排序序列中包含的逆序总和=0 时,则排序完成。 * * 1.冒泡排序(Bubble sort)的思想是: 每次从头扫描待排记录序列,依次比较相邻两个记录关键字的大小,若为逆序就交换它们的位置,此举不断将关键字大的记录向后移动,最后将待排序列中关键字最大的记录交换到序列末尾,这个过程称为一趟冒泡排序。 特点:最大关键字总是最早沉下,每一趟排序都有一个相对大的数据被交换到后面;而较小关键字的记录则不断向上(前)移动位置(每次只移动一个位置),就像水中的气泡逐渐向上飘浮一样,所以把这种排序方法形象地称为“冒泡排序”。 9.3.1 冒泡排序 * * 冒泡排序过程 示例 待排记录个数n=10 下标: 1 2 3 4 5 6 7 8 9 10 初始状态:48 60 76 35 56 78 10 90 80 40 交换次数 第一趟: 48 60 35 56 76 10 78 80 40 90 5 第二趟: 48 35 56 60 10 76 78 40 80 4 第三趟: 35 48 56 10 60 76 40 78 3 第四趟: 35 48 10 56 60 40 76 2 第五趟: 35 10 48 56 40 60 2 第六趟: 10 35 48 40 56 2 第七趟: 10 35 40 48 1 第八趟: 10 35 40 0 结果: 10 35 40 48 56 60 76 78 80 90 注意:1。每趟确定一个记录的最终位置,因此“待排记录”个数是逐渐减少的,直到待排记录个数剩1为止。最多需要n-1趟冒泡。 2。若在某趟排序中没有发生记录的交换,说明记录已经有序,排序过程可提前终止。 * * #define true 1 /* 定义常量,增加

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档