【发布时间】:2020-02-11 14:04:52
【问题描述】:
给定一个长度为 n 的数组 A[1..n],每个单元包含一个〈height,weight〉对。所有身高值都是不同的,所有体重值也是如此。该数组按高度值的升序排序。您的任务是设计一个递归分治算法,给定一个整数 k∈[1,n],找到具有第 k 个最小权重值的条目。在每个递归级别中,您只能使用 O(1) 额外空间。尽管您的算法可以在需要时重新排序 A 的条目,但它必须在终止之前恢复条目的原始顺序。您的算法必须在 Θ(n) 时间内运行。
我能想到的算法是选择排序,但在时间和空间复杂度方面我做不到。任何帮助或指导将不胜感激。
【问题讨论】:
标签: algorithm sorting time-complexity divide-and-conquer selection-sort