二分查找算法(折半算法)

Posted 码码小虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找算法(折半算法)相关的知识,希望对你有一定的参考价值。

    折半查找算法:

        在纸上随机写一个[0,100]区间的数字,使用最少的次数猜出该数字?这里不考虑运气问题。每次猜数字结束,如果不等于真实数字,只会被告知,当前所猜的数字相对于正确答案是偏大还是偏小。那么如何才能做到使用最少的次数得出正确答案呢?

    最笨的方法是,从0到100,一个一个的试,那么,最多可能需要101次才能得到最终的结果。其实这个问题可以使用经典的折半查找算法来解决,其大致流程如下图所示:


    分析上图我们可以知道,每次猜测相对于真实答案,要么偏大,要么偏小,第一次猜测,取100的一半,即50,如果偏大,则只进行左边的猜测;如果偏小,则只进行右边的猜测;如果按照这种方法猜测,那么一定能够在7次以内得到最终的结果。相对于最多的101次,这种方式效率更高,更加节省时间,简直完爆一切。


以上是关于二分查找算法(折半算法)的主要内容,如果未能解决你的问题,请参考以下文章

python实现二分查找(折半查找)算法

二分查找(折半查找)算法详解(C语言实现)

java 二分查找 - 折半查找算法

分治算法----折半查找----递归二分算法

C语言二分查找算法,折半查找算法

算法知识常用算法详解丨二分查找法(折半查找)