【发布时间】:2014-03-14 11:28:34
【问题描述】:
给定一个排序数组A[1...n]的键,另一个键x,存储在A中,显示如何找到索引k,以便A[k] = x及时O(log(k))。
我知道平均而言,对排序数组的二进制搜索将在O(logn) 中完成,但是如上所述,对于排序数组,显示O(logk) 的运行时间的最佳方法是什么?
感谢您的帮助。
【问题讨论】:
-
您的键是任意值,还是专门的整数?
-
我没有得到 O(logk).. k 与 O() 复杂性有什么关系? k 只是索引的值,对吗?如果那个 x 在索引 0 处,我应该在 O(log0) 中完成它吗?
-
@DavidKernin 这正是 O(log k) 所说的:k 中的对数,因此(非常缓慢地)随着 k 的增长而增长。
标签: arrays performance algorithm big-o