当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级公共基础知识辅导笔记(8)
发布时间:2011/3/21 10:06:07 来源:城市学习网 编辑:ziteng
  1.8 排序

  1. 交换类排序法

  (1)冒泡排序法

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

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

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

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

  (2)快速排序法

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

  2. 插入类排序法

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

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

  3. 选择类排序法

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

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

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

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved