教资会网络 | UGC-NET CS 2017 年 11 月 – III |问题 32
给定一个包含 n 个元素的序列进行排序。输入序列由 n/k 个子序列组成,每个子序列包含 k 个元素。给定子序列中的元素都小于后续子序列中的元素并且大于前面子序列中的元素。因此,对长度为 n 的整个序列进行排序所需的只是对 n/k 个子序列中的每个子序列中的 k 个元素进行排序。
解决这种排序问题变体所需的比较次数的下限是
(A) Ω (n)
(B) Ω (n/k)
(C) Ω (nlogk)
(D) Ω (n/klogn/k)答案: (C)
解释:我们有 n/k 个子序列,每个子序列包含 k 个元素。
如果我们使用快速排序技术对子序列中的 k 个元素进行排序,那么对子序列中的 k 个元素进行排序的复杂度为 klogk。
我们有 n/k 个这样的序列。那么具有 k 个元素的 n/k 个子序列的时间复杂度将是:
= (n/k)* klogk
= 日志
这个问题的测验