折半查找算法:

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

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

二分查找(折半算法)

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

二分查找(折半算法)


相关文章:

  • 2022-12-23
  • 2021-10-16
  • 2021-04-04
  • 2022-12-23
  • 2021-08-09
  • 2022-03-06
猜你喜欢
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-20
  • 2022-01-08
  • 2021-10-27
  • 2021-07-30
相关资源
相似解决方案