- 41
- 0
- 约2.5万字
- 约 91页
- 2017-06-13 发布于湖北
- 举报
C1(n) ≤ 2 ∑ (2i-1×(h-i))≤4(2h-h-1) h-1 i=1 ∵ h=?㏒2n?+1, ∴ C1(n)≤4(n-㏒2n-1) ◆ 筛选调整:每次筛选要将根结点“下沉”到一个合适位置。第i次筛选时:堆中元素个数为n-i+1;堆的深度是?㏒2(n-i+1)?+1,则进行n-1次“筛选”的比较次数C2(n)为: C2(n) ≤ ∑ (2×㏒2(n-i+1)) n-1 i=1 ∴ C2(n)2n㏒2n ∴ 堆排序的比较次数的数量级为: T(n)=O(n㏒2n);而附加空间就是交换时所用的临时空间,故空间复杂度为: S(n)=O(1) 。 10. 5 归并排序 归并(Merging) :是指将两个或两个以上的有序序列合并成一个有序序列。若采用线性表(无论是那种存储结构)易于实现,其时间复杂度为O(m+n) 。 归并思想实例:两堆扑克牌,都已从小到大排好序,要将两堆合并为一堆且要求从小到大排序。 ◆ 将两堆最上面的抽出(设为C1,C2)比较大小,将小者置于一边作为新的一堆(不妨设C1C2);再从第一堆中抽出一张继续与C2进行比较,将较小的放置在新堆的最下面; ◆ 重复上述过程,直到某一堆已抽完,然后将剩下一堆中的所有牌转移到新堆中。 1 排序思想 ① 初始时,将每个记录看成一个单独的有序序列,则n个待排序记录就是n个长度为
原创力文档

文档评论(0)