2011年计算机二级公共基础知识辅导笔记(8)

文章作者 100test 发表时间 2011:03:18 18:47:45
来源 100Test.Com百考试题网


  1.8 排序

  1. 交换类排序法

  (1)冒泡排序法

  首先,从表头开始往后扫描线性表,逐次比较相邻两个元素的大小,若前面的元素大于后面的元素,则将它们互换,不断地将两个相邻元素中的大者往后移动,最后最大者到了线性表的最后。

  然后,从后到前扫描剩下的线性表,逐次比较相邻两个元素的大小,若后面的元素小于前面的元素,则将它们互换,不断地将两个相邻元素中的小者往前移动,最后最小者到了线性表的最前面。

  对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时已经排好序。

  在最坏的情况下,冒泡排序需要比较次数为n(n-1)/2。

  (2)快速排序法

  任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一次排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。

  2. 插入类排序法

  ① 简单插入排序法,最坏情况需要n(n-1)/2次比较;

  ② 希尔排序法,最坏情况需要O(n1.5)次比较。

  3. 选择类排序法

  ① 简单选择排序法,最坏情况需要n(n-1)/2次比较;

  ② 堆排序法,最坏情况需要O(nlog2n)次比较。

  相比以上几种(除希尔排序法外),堆排序法的时间复杂度最小。

  #ff0000>


相关文章


全国计算机二级考试公共基础知识习题(4)
计算机等级考试2级公共基础120题
计算机等级考试公共基础知识总结
等级考试公共基础考点分析之数据结构与算法
2011年计算机二级公共基础知识辅导笔记(8)
2011年计算机二级公共基础知识辅导笔记(7)
2011年计算机二级公共基础知识辅导笔记(6)
2011年计算机二级公共基础知识辅导笔记(5)
2011年计算机二级公共基础知识辅导笔记(3)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛