等级考基础数据结构.pptVIP

  • 8
  • 0
  • 约1.62万字
  • 约 114页
  • 2017-02-23 发布于上海
  • 举报
等级考基础数据结构

冒泡排序的效率分析 若待排序的元素为正序,则只需进行一趟排序,比较次数为(n-1)次,移动元素次数为0; 若待排序的元素为逆序,则需进行n-1趟排序,比较次数为(n2-n)/2,移动次数为3(n2-n )/2, 最坏情况比较n(n-1)/2 因此冒泡排序算法的时间复杂度为O(n2)。由于其中的元素移动较多,所以属于内排序中速度较慢的一种。 6.3.2 快速排序 基本思想是:取待排序序列中的某个元素(一般第一个元素)作为基准,通过一趟排序,将待排元素分为左右两个子序列, 左子序列元素的排序码均小于或等于基准元素的排序码, 右子序列的排序码则大于基准元素的排序码, 然后分别对两个子序列继续进行快速排序,直至整个序列有序。 元素的比较和交换是从两端向中间进行的,排序码较大的元素一次就能够交换到后面,排序码较小的记录一次就能够交换到前面,记录每次移动的距离较远,因而总的比较和移动次数较少。 例如,给定排序码为:(46,55,13,42,94,05,17,70),具体划分如图7-4所示。 3.快速排序的效率分析 若快速排序出现最好的情形(左、右子区间的长度大致相等),则结点数n与二叉树深度h应满足log2nhlog2n+1 ,所以总的比较次数不会超过(n+1) log2n。因此,快速排序的最好时间复杂度应为O(nlog2n)。 已经证明,快速排序的平均时间复杂度也为O(nlog2

文档评论(0)

1亿VIP精品文档

相关文档