大前端算法入门之二分查找

现如今面试大厂的前端岗位对于应聘者的算法技巧要求越来越高,现在的前端已经不仅仅是制作页面就能够交差的,所以掌握算法技巧是很重要的,下面小千就来给大家介绍一个二分查找算法。

在这里插入图片描述

二分查找

  所谓的算法都不是直接使用关键字indexOf fifindIncludes之类的, 都是原生循环来实现。

  二分 就是一拆为2 比如一个集合:let list = [1,2,3,4,5,6,7]

  二分就是在中间拆开变成两个数组

  list1=[1,2,3,4]

  list2 =[5,6,7]

  二分用在哪些地方?

  主要有有序数组的查找,但是说 list= [1.....10] 可能肉眼就知道。但是如果list = [1000,20000] 要找查找某个数位置 就观察不出来了,更甚至 list = 一千人的电话号码 要查找某一个。二分不是绝对的性能优秀 所有的优秀的 都是对比的。

  现在有一个集合放1到10 要找9的的位置,普通的循环要找9次 二分找几次呢?

  let list = [1,2,3,4,5,6,7,8,9,10]

  第一次中间数 5,6都可以 目标数9

  假设:

  middle =5

  target=9

  9>5 下次查找的区间 就用二分的后者 [5,6,7,8,9,10]

  接着

  middle = 7

  target = 9

  9>7 下次查找的区间 就继续二分为 [7,8,9,10]

  继续

  middle=8

  target=9

  9>8 下次查找的区间 [8,9,10]

  继续

  middle = 9

  target= 9

  这样就找到9的位置

  都是折叠查找 查找的次数比较稳定长度为8的集合 最多3次 就能找到数

  log 8=2

  就是同理 16个数 最多需要几次 2 ? = 16 结果是4 最多查找四次

  log16= 4

在这里插入图片描述

不管开头还是结尾 还是中间 都稳定在 4次之前解决战斗,同理 100个数 找一个数 最多7次 40亿个数 找32次。你学会了吗?

本文来自千锋教育,转载请注明出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值