第8部分内部排序学习课件.pptVIP

  • 6
  • 0
  • 约1.78万字
  • 约 81页
  • 2016-12-06 发布于江苏
  • 举报
8.4.2 堆排序 3.性能分析 (1)时间性能分析 堆排序的主要时间耗费在建初始堆和调整堆上。对n个记录的待排序列建立深度为k的堆,已知 ,则: 建初始堆,总共进行的关键字比较不超过4n次,所以建堆的时间复杂度为O(n)。 在筛选算法中,从根到叶子的筛选,关键码比较次数至多为2(k-1)次,交换记录至多k次。调整、建新堆时调用heapadjust过程n-1次,因此,总的比较次数不超过: 所以,堆排序的总时间代价为O(n)+O(nlog2n)= O(nlog2n)。理论上,堆排序最好、最差、平均情况下的时间复杂度为O(nlog2n)。 8.4.2 堆排序 3.性能分析 (2)空间性能分析 堆排序仅在交换堆顶元素和堆底元素时使用了一个临时单元r[0],其空间复杂度S(n)=O(1)。 (3)稳定性 在调整过程中,完全二叉树的父子结点之间的移动不能保证两个关键码相同的记录一定保持原始输入顺序。例如图9.8中,算法的执行改变了65和65’的原始顺序。 8.5 归并排序 归并排序是利用“归并”技术来进行排序,所谓“归并”是指将若干个已排序的子序列合并成一个有序序列。归并排序通常分为2-路归并和多路归并,2-路归并一般用于内部排序,多路归并一般用在外部磁盘数据排序中。本节主要介绍2-路归并排序。 8.5归

文档评论(0)

1亿VIP精品文档

相关文档