美文网首页小马哥的Python专题
算法01 - 二分法查找

算法01 - 二分法查找

作者: 小马哥China | 来源:发表于2019-05-23 22:57 被阅读63次

二分法查找简介
输入:一个"有序"元素列表
输出:返回要查找的元素位置,没有这个元素则返回None

使用背景简介
假如有一个需求,在1-100顺序排列的数中找到指定的数字N,我们能想到的办法有:

方法(1), 在1开始, 挨个询问是不是1,是不是2,..., 一直到指定的N,如果N是100的话,我们需要试验到第100次才能猜中,也就是说在顺序查找中,我们最多需要100次完成需求,假设试验一次需要0.001秒,试验100次找到指定数字,最多需要0.1秒. 俗话讲: 抛开数据规模和复杂度谈算法,纯属耍流氓! 如果我们面对的是10亿个数字, 在里面查找指定数字,最多需要10亿*0.001秒 = 100万秒≈277小时

方法(2), 面对1-100, 首先最大化的排除无用数据, 先猜是不是50, 是就返回, 不是返回50是大了还是小了, 然后把50当做上边界或者下边界, 再次猜中间位置, 这样依次猜下去, 例如我们N=100,s1猜50小了, s2猜75, s3猜88, s4猜94, s5猜97, s6猜99, s7猜100共计7步找到结果, 如果是10亿需要多少次呢? 答案是(\log_2 10亿 )=30次

代码实现

代码截图

相关文章

  • 查找算法

    三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表

  • 刷前端面经笔记(九)

    1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找...

  • 10个常用算法

    0x01 二分法 原理:二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。 一般步驟:(1)确定...

  • 算法图解1-2/11

    原书作者 Aditya Bhargava 1 算法简介 1.1 二分法查找 二分法查找,正是猜数字游戏的玩法:A...

  • 查找算法

    查找算法 顺序查找法 时间复杂度:O(n) 二分法查找 二分法查找适用于有顺序的序列 时间复杂度:O(n) 核心思...

  • 前端面试之算法二分法

    使用二分法的前提是,目标数组的元素必须是有序排列的,所以二分法属于有序查找算法 二分法又称为“折半查找”,从数组的...

  • 二分法查找

    二分法查找 : 目的 : 查找一个数组中是否含义某个元素 : 有返回数组中的位置 ,没有返回 -1 算法: 二分法...

  • 解析前端面试之二分查找算法

    二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。 二分法查找的思路如下: (1)首先,从数组的...

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

    算法:二分法查找(折半查找法) 这是最经典的折半查找,而在面试的时候往往会对某些经典的数据结构和算法进行魔改,这道...

  • 二分法查找

    二分法查找 算法:二分法查找适用于数据量较大,但是数据需要先排好序 (1)确定该区间的中间位置k(2)将查找的值T...

网友评论

    本文标题:算法01 - 二分法查找

    本文链接:https://www.haomeiwen.com/subject/wxyizqtx.html