排序复习查漏补缺

版权声明:欢迎转载,但转载时请注明原文地址 https://blog.csdn.net/weixin_42110638/article/details/85077812

1.2-6

有组记录的排序码为{ 46,79,56,38,40,84 },则利用堆排序的方法建立的初始堆为:D (2分)

  1. 79,46,56,38,40,80
  2. 84,79,56,46,40,38
  3. 84,56,79,40,46,38
  4. 84,79,56,38,40,46

这个题要知道两点,首先你得知道堆排序是建立最大堆,第二你得会建堆

关于建堆,就是先把这组树写成一个完全二叉树,然后把它调整成一个最大堆。

过程其实类似堆的删除操作,就是每次从倒数第一个有儿子的结点开始,把每个结点都调成最大堆就好了

图示。。。凑活看吧

2.

对10TB的数据文件进行排序,应使用的方法是:C(1分)

扫描二维码关注公众号,回复: 4617030 查看本文章
  1. 希尔排序
  2. 堆排序
  3. 归并排序
  4. 快速排序

对于10TB的海量数据,数据不可能一次全部载入内存,传统的排序方法就不适用了,需要用到外排序的方法。外排序采用分治思想,即先对数据分块,对块内数据进行排序,然后采用归并排序的思想进行排序,得到数据的一个有序序列。

3.

下列排序方法中,若将顺序村吃更换为链式存储,则算法的时间效率会降低的是:D(2分)

1.插入排序;2.选择排序;3.起泡排序;4.希尔排序;5.堆排序

  1. 仅1、2
  2. 仅2、3
  3. 仅3、4
  4. 仅4、5

这个很难

插入排序、选择排序、起泡排序原本时间复杂度是O(n2),更换为链式存储后的时间复杂度还是O(n2)。希尔排序和堆排序都利用了顺序存储的随机访问特性(堆排序的这个特性体现在:取出最大堆的根节点后,更新堆的过程),而链式存储不支持这种性质,所以时间复杂度会增加,因此选D。

4.

2-9

{ 12,9,11,8,7,4,5,13,23 }是下列哪种方法第二趟排序后的结果? D(2分)

  1. 归并排序
  2. 堆排序
  3. 插入排序
  4. 基数排序

因为堆排序就是每次删除最大堆,并把它放在最后,其实这个过程有点像冒泡我觉得

5.

下列排序算法中,哪种算法可能出现:在最后一趟开始之前,所有的元素都不在其最终的位置上?B(设待排元素个数N>2) (2分)

  1. 冒泡排序
  2. 插入排序
  3. 堆排序
  4. 快速排序

这个很明显就是插入排序的特点

6.2-16

若数据元素序列{ 11,12,13,7,8,9,23,4,5 }是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是:C (2分)

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 归并排序

这个题很好!!!

考查各排序算法的特点。
解答本题要对不同排序算法的特点极为清楚。
对于起泡排序和选择排序而言,每一趟过后都能确定一个元素的最终位置,而由题目中所说,前两个元素和后两个元素均不是最小或最大的两个元素并按序排列。
(二路)归并排序,第一趟排序结束都可以得到若干个有序子序列,而此时的序列中并没有两两元素有序排列。
插入排序在每趟排序结束后能保证前面的若干元素是有序的,而此时第二趟排序后,序列的前三个元素是有序的,符合其特点。故正确答案是C。

7.2-19

就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是: (1分)

  1. 堆排序 < 归并排序 < 快速排序
  2. 堆排序 > 归并排序 > 快速排序
  3. 堆排序 < 快速排序 < 归并排序
  4. 堆排序 > 快速排序 > 归并排序

一下两个题比一下记住就好

2-21

在基于比较的排序算法中,哪种算法的最坏情况下的时间复杂度不高于O(NlogN)?B (1分)

  1. 冒泡排序
  2. 归并排序
  3. 希尔排序
  4. 快速排序

作者: DS课程组

单位: 浙江大学

2-22

下列排序算法中,时间复杂度不受数据初始状态影响,恒为O(NlogN)的是:C (1分)

  1. 冒泡排序
  2. 直接选择排序
  3. 堆排序
  4. 快速排序

猜你喜欢

转载自blog.csdn.net/weixin_42110638/article/details/85077812