大师兄

期中测试 | 一套习题,测出你的掌握程度

你好,我是胡光。今天,我们来进行一场期中考试,共有3道选择题和2道主观题,希望你能好好思考,下节课我来公布答案。

选择题

1.下面这些对于堆的描述中,错误的选项是()

A. 由于堆可以存储在一个数组中,所以堆属于一种线性结构

B. 堆分为大顶堆与小顶堆,大顶堆的堆顶是最大值

C. 在一个数组上,建立一个堆的时间复杂度不可能低于 O(nlogn)

D. 对顶堆主要可以解决动态查找中位数的问题

2.关于快速排序优化中的“基准值选取优”的说法,错误的是()

A. 三点取中法的优化,是概率性优化,程序是否展现出优化效果,要看具体的数据分布

B. 三点取中法的优化,可以保证在所有数据上,都能展现出优化以后的好效果

C. 基准值选取优化,根本目的是为了让程序实现更简单

D. 基准值选取优化,根本目的是为了稳定住快速排序的时间复杂度,使其在最差的情况下,也能表现良好

3.关于归并排序的说法中,错误的是()

A. 归并排序和快速排序一样,最坏时间复杂度是 $O(n^2)$,最好是 $O(nlogn)$

B. 归并排序最好、最坏、平均时间复杂度都是 $O(nlogn)$

C. 归并排序和快速排序一样,都属于稳定排序,相同值排序以后,相对位置保持不变

D. 归并排序和快速排序不一样,快速排序属于稳定排序,归并排序属于非稳定排序

主观题

  1. 请阐述 Top-k 的解法。按照你的理解,分情况讨论。
  2. 请说出 4 种生活中需要排序的具体场景。