第12课-内部排序——交换类.pptVIP

  • 5
  • 0
  • 约8.17千字
  • 约 23页
  • 2018-03-27 发布于江西
  • 举报
第12课-内部排序——交换类.ppt

* * 交换类排序 本课内容 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)

1亿VIP精品文档

相关文档