【发布时间】:2010-12-25 23:16:23
【问题描述】:
我遇到了这个文档Binary Search Revisited,作者已经证明/解释了二进制搜索也可以用于未排序的数组(列表)。在第一次阅读时,我并没有深入了解该文件的大部分内容。
你们中有人已经探索过这个吗?
【问题讨论】:
-
嗯,还没看,但目前我不明白这对未排序的数组如何工作(当然,排序可以用函数完成,但它仍然会排序)。
-
我很确定这是一个骗局。在未排序的列表中查找某些内容始终是一个 O(n) 问题,至少在当前的宇宙定律范围内是这样。
-
当然你可以对未排序的数组进行二分搜索。问题仍然是你是否会找到你要找的东西:-)
-
由于二分查找的定义包含它的输入必须被排序的事实,这不是二分查找。它可能是“二分查找”like,但不是二分查找。请参阅en.wikipedia.org/wiki/Binary_search_algorithm,但您会在其他数千个地方找到相同的定义。
-
@Philippe 如果您递归地划分数组的适当部分,则当前的宇宙法则允许您在 Log(n) 中找到它。这很酷,有点应用“半快速排序”。不过,有点太长了,无法在评论中解释。请参阅 Cormen(中位数和顺序统计)。