2018-09-07

二分查找算法:

二分查找搜索的是有序表,时间复杂度是O(log(n))。需要一个辅助变量来表示是否已经找到target。

核心算法思想:

1.定义左指针left ,定义右指针right,定义中间指针mid,mid=1+(mid-1)/2; # //int mid = (r + l) / 2; //潜在bug 可能会使r+l 溢出

2.因为是有序表,所以从中间的变量开始进行查找,分三种情况:

if target==item[mid],return index;

if target > item[mid], 说明在右半部分,将left = mid+1,继续在右半部分进行查找

if target < item[mid],说明在左半部分,将right=mid-1,继续在左半部分进行查找

3.循环,查找结束。

循环条件 left < right 


代码如下:


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,929评论 0 33
  • 1. AVL树 AVL树简单来说是带有平衡条件的二叉查找树.传统来说是其每个节点的左子树和右子树的高度最多差1(注...
    fredal阅读 1,903评论 0 4
  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,361评论 0 3
  • 简介 medoo是第三方数据库操作类。采用了ORM设计模式,适用于所有PHP框架,如Laravel,Codeign...
    DragonRat阅读 6,737评论 2 3
  • 1 一朵坚持不婚主义,这一点,我跟大勇都知道。 一朵问,为什么现在,越来越多的人选择了单身? 我知道,所谓的单身大...
    CC柳冰晨阅读 255评论 0 2

友情链接更多精彩内容