【发布时间】:2013-09-09 14:40:13
【问题描述】:
我正在学习二分搜索,基本定义从第一个元素的迭代器和最后一个元素的迭代器开始。您还有一个键,这是您要查找的元素。首先将key与中点的值进行比较,然后根据key是大于还是小于中点的值来消除上半部分或下半部分。这个过程一直持续到匹配为止。
这种方法不需要对您正在查看的容器进行排序吗?否则,我看不出容器中的键和值之间的比较以消除要查看的容器部分有何特殊用途。
【问题讨论】:
-
是的,二分查找仅适用于已排序的集合。任何没有指明不充分的文章:(
-
谁反对这个?问题很明确,包括动机,展示了理解,并且与编码明显相关。 “我知道这一点,怎么会有人不知道这一点”不是否决问题的充分理由。
-
@us2012 这是关于在提出问题之前没有做足够的研究。几乎所有与二分查找相关的文章都会很清楚地提到这一点
-
@Saksham。我之所以问这个问题,是因为我正在浏览许多技术面试编程书籍中的一本,而在我正在看的那本书中,并没有提到它。当然,我确信作者假设知道这一事实,但这是一个没有提及的例子。
标签: c++ binary-search