Advertisement

算法基础即为二分查找(基于Python)

阅读量:

本博客所有内容均整理自《算法图解》,欢迎讨论交流~

二分查找亦称折半搜索(Binary Search),是一种效能较高的查找方法。然而折半搜索需要线性表采用顺序存储结构,并且表中元素需按关键字有序排列。当要寻找的元素存在于输入的元素列表时,则该元素会被找到。

具体来说,在介绍二分查找法时以报数为例进行说明时,请您注意以下内容:假设随机选择一个1到100之间的整数作为目标值(例如65),然后请对方来猜这个数字。二分查找法的核心思想是每次猜测中间位置的数值来进行比较判断。具体操作如下:第一次猜测位于区间的中点位置(即第50个数字),如果对方提示说"小了"则表示目标值位于当前区间的上半部分;第二次则在上半区间(即第51至第100个数字)中重新计算新的中点位置并进行猜测(即第75个数字)。如果对方提示说"大了"则表示目标值位于当前区间的下半部分;第三次则在新的下半区间(即第51至第74个数字)中重新计算新的中点位置并进行猜测(即第62.5个数字)。按照这种逐步缩小范围的方式不断调整猜测范围直到找到正确的答案为止。

不言自明的是,在查看了这个实例之后你便能理解其原理。二分查找仅限于已排序序列的应用场景,在每次查找操作中都需要比较中间元素以确定其位置关系。若序列未被排序,则无法确定该位置对应的值。

通常情况下,在0至100的数字范围内,无论是随机猜测还是从1开始逐步递增猜测的方法(即每

全部评论 (0)

还没有任何评论哟~