常用算法篇-二分查找(变魔术)

Posted 小白的梦

tags:

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

前言故事:记得上小学的时候,有个体育老师跟我们玩了一个游戏,他说:"我背对着你们,然后班长在纸上写一个1000以内的数字,你们都看一下,不需要告诉我,然后我猜这个数字是多少,你们只需要告诉我,我猜的数字大了还是小了,那么我最多猜10次就能猜中,你们信不信?".

那么从上面的故事,我们可以分析出什么呢?

1.小编的数学是体育老师教的

2.老师10次内猜出了正确数字,小编知道了什么叫 "我伙呆!"

3.我们是时候学习二分查找算法了

二分查找算法

这个魔术表演起来还是很炫酷的,那么我们现在就用程序来介绍这个魔术的原理.

魔术主程序

常用算法篇-二分查找(变魔术)

小明猜测与小白回答方法

原理介绍:


提取公共方法:

上面举得魔术例子其实就是二分循环查找的方法,下面我们就把二分循环查找算法和二分递归查找算法敲一遍,大家就下面图中的内容理解一下:

常用算法篇-二分查找(变魔术)

二分循环查找法

二分递归查找法


总结:

下面我们总结下应用场景:

  1. 升序数字集合

  2. 利用二分递归查找或者二分循环查找

  3. 二分查找的优点:比较次数少,查找速度快,平均性能好;

  4. 二分查找的缺点:要求待查表为有序表,且插入删除困难;



以上是关于常用算法篇-二分查找(变魔术)的主要内容,如果未能解决你的问题,请参考以下文章

Python数据结构与算法篇-- 二分查找与二分答案

算法篇:二分查找基础篇

二分查找 - 基础篇

二分查找专题总结 - 基础篇

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

在路上---学习篇Python 数据结构和算法 二分查找二叉树遍历