2013年计算机二级考试公共基础考点五

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年8月24日
顺序查找


  查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示查找失败。

  在下列两种情况下也只能采用顺序查找:

  (1)如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找。

  (2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。

  二分法查找
 

  二分法只适用于顺序存储的,按非递减排列的有序表,其方法如下:

  设有序线性表的长度为n,被查找的元素为i,

  (1)将i与线性表的中间项进行比较;

  (2)若i与中间项的值相等,则查找成功;

  (3)若i小于中间项,则在线性表的前半部分以相同的方法查找;

  (4)若i大于中间项,则在线性表的后半部分以相同的方法查找。

  交换类排序法
  冒泡排序法和快速排序法都属于交换类排序法。

  (1)冒泡排序法

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

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

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

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

  (2)快速排序法

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

  疑难解答:冒泡排序和快速排序的平均执行时间分别是多少?

  冒泡排序法的平均执行时间是O(n2),而快速排序法的平均执行时间是O(nlog2n)。


相关文章