algorithm - 在大小为 m 和 n 的 2 个排序列表的并集中找到第 k 个最小元素,效率为 log(k)

标签 algorithm

在大小为 m 和 n 的 2 个已排序列表的并集中查找第 k 个最小元素

通过效率log(k),我做了很多思考和搜索,我也得到了

pesedocode 及其解释...到目前为止我仍然不明白或不理解

问题是正确的..任何帮助将不胜感激....

最佳答案

所以你必须设置,比如 { 1, 4, 5, 7, 8, 12, 98, 1993 }{ 2, 5, 8, 10, 88 } 。 你想找到第三小的元素。

这意味着 m=8、n=5 和 k=3。 目视检查这些集合,您会发现答案是 4。 您的查找算法必须在 O(log(k)) 内找到正确的值(即“大O”)。

这意味着如果您的算法通过多个步骤找到元素 N = n1 + n2 + ... ,其中每个 n1, n2, ...是 k 的函数,即所有 n1, n2... 的增长率必须小于或等于 log(k) 的增长率。

如果这没有意义,则目标是在少于 k 步的时间内找到该元素(其中 k > 1)。

关于algorithm - 在大小为 m 和 n 的 2 个排序列表的并集中找到第 k 个最小元素,效率为 log(k),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198851/

相关文章:

c++ - 从 vector 中删除最小的非唯一值

algorithm - 优化 Modbus 请求

C++回文检查解决方案被一个测试用例触发

algorithm - n 阶梯的最大步数和

algorithm - 这个排序算法的名称?

android - react-native-camera中YUV_420_888格式的算法旋转

algorithm - 在解决约束问题时需要帮助

c - 中点圆算法不适用于不等中心坐标

python - 一般酒吧和星星

c++ - 算法,在给定的最小值和最大值之间查找 "number not divided by square numbers"