数据结构-第10章-内部排序复习课程.pptVIP

  • 1
  • 0
  • 约2.41千字
  • 约 88页
  • 2021-09-22 发布于浙江
  • 举报
目 录; 排序(sorting);需确定1,2,…,n的一种排列p1,p2,…,pn,使其相应 的关键字满足如下的非递减(或非递增)关系 Kp1? Kp2 ? … ? Kpn 即使序列(※)成为一个按关键字有序的序列 { Rp1,Rp2,…,Rpn} 这种操作过程称为排序。;基本概念;2. 排序方法分类;排序方法分类;3. 基本操作;4. 存储结构; 5. 排序方法分析;1. 直接插入排序 (Straight Insertion Sort); 算法的基本思路; 算法10.1; 例子;时间复杂性分析; 直接插入排序;2. 其它插入排序;;;;;3. 希尔排序 (Shell’s Sort);例,初始关键字序列为: 43 41 33 67 74 23 37 33 47 35; 23 37 33 47 35 43 41 33 67 74; 10.3 交换排序; 基本思想; 一般地,第 i 趟冒泡排序是从 r[1]到 r[n-i+1]依次比较相邻两个记录的关键字,并在“逆序”时交换相邻记录,其结果是这n-i+1个记录中关键字最大的记录被交换到第n-i+1 的位置上。整个排序过程需进行k(1? k n)趟冒泡排序。;49 38 65 97 76 13 27 49 初始关键字;冒泡排序的算法;2. 快速排序(Quick Sort); 具体做法; 举例;2次 35 41 33 43 74 23 37 33 47 67 ↑ ↑ i j ;5次 35 41 33 33 37 23 43 74 47 67 ↑ ↑ ← ↑ i j j;快速排序的算法;; 算法分析;;;; 基本思想;简单选择排序 (Simple Selection Sort); 算法;简单选择排序; 算法分析;;2.锦标赛排序 (Tournament Tree Sort) 树形选择排序(Tree Selection Sort);锦标赛排序构成的树是满的完全二叉树,其深度为 ?log2(n+1)?,其中 n 为待排序元素个数。 除第一次选择具有最小关键字的对象需要进行 n-1 次关键字比较外,重构胜者树选择具有次小、再次小关键字对象所需的关键字比较次数均为 O(log2n)。总关键字比较次数为O(nlog2n)。 对象的移动次数不超过关键字的比较次数,所以锦标赛排??总的时间复杂度为O(nlog2n)。 这种排序方法虽然减少了许多排序时间,但是使用了较多的附加存储。; 胜者树的概念;; 堆的定义;堆排序;堆排序;建堆; 输出堆顶元素,用最后一个元素代替之,然后调整剩余元素 成为一个新的堆; 练习; 最大堆的向下调整算法; 基于初始堆进行堆排序;; 算法分析;;10.5 归并排序;归并排序;;;;在归并排序算法中,递归深度为O(log2n),对象关键字的比较次数为O(nlog2n)。算法总的时间复杂度为O(nlog2n)。 归并排序占用附加存储较多,需要另外一个与原待排序对象数组同样大小的辅助数组。这是这个算法的缺点。 归并排序是一个稳定的排序方法。;10.6 基数排序;以扑克牌排序为例。每张扑克牌有两个“关键字”:花色和面值。其有序关系为: 花色:? ? ? ? ? ? ? 面值:2 3 4 5 6 7 8

文档评论(0)

1亿VIP精品文档

相关文档