请教一个关于线性时间选择算法的题目
有一个集合, 里面有n个无序实数. 设最小数是a,最大数是b. 他们的平均距离定义为d = (b-a)/(n-1)
1)证明集合里面至少有一对数x和y, 使得|x-y|<=d.
2)设计一个算法,在O(n)时间内找到这样一对x和y
(注:只需要找到一对满足条件的x和y即可,不需要找到所有满足条件的x和y)
提示:可以把线性时间选择算法作为你的算法的子程序,
即寻找一个size为n的无序集合中第K大的数仅需O(n)时间, 1<=K<=n, 详情见算法导论
第一问很简单 请略过
第二问不太会
1)证明集合里面至少有一对数x和y, 使得|x-y|<=d.
2)设计一个算法,在O(n)时间内找到这样一对x和y
(注:只需要找到一对满足条件的x和y即可,不需要找到所有满足条件的x和y)
提示:可以把线性时间选择算法作为你的算法的子程序,
即寻找一个size为n的无序集合中第K大的数仅需O(n)时间, 1<=K<=n, 详情见算法导论
第一问很简单 请略过
第二问不太会
...全文
相关推荐
OJ题目及源码
线性时间选择:在数组中找到第k小的元素,分治方法可以保证线性时间复杂度。15. 最接近点对问题:在一组点中寻找距离最近的点对,分治策略可以降低问题的复杂性。16.
算法导论课后答案 中文版
#### 7.4 线性时间选择算法- **7.4-1** 至 **7.4-6**:这些题目进一步探讨了线性时间选择算法的设计及其分析。### 8.
分治与递归算法实验.pdf
一、实验目的* 掌握分治算法的基本思想(分-治-合)和技巧* 熟练掌握用递归设计分治算法的基本步骤* 学会利用分治算法解决实际问题二、实验内容* 题目一:线性时间选择 + 给定 n 个元素和一个整数 k
算法分析与设计作业(二).doc
**随机化算法**:舍伍德算法可以用于实现快速排序和线性时间选择的随机化版本,提供近似平均情况下的线性时间性能。9.
线性时间选择中位数算法
**掌握线性时间选择的基本算法及其应用:** 线性时间选择算法是一种可以在平均或最坏情况下达到线性时间复杂度的选择算法,它主要用于在无序数组中找到第k小的元素。


