Java数据结构和算法-二分查找算法思路图解

二分查找算法

二分查找:
请对一个有序数组进行二分查找{1,8,10,89,1000,1234},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数"。

二分查找的思路分析:

  1. 首先确定该数组中间的下标
    mid=(left+right)/2
  2. 然后让需要查找的数findValue和arr[mid]比较
    2.1 findValue>arr[mid],说明你要查找的数在mid的右边,因此需要递归的向右查找
    2.2 findValue<arr[mid],说明你要查找的数在mid的左边,因此需要递归的向左查询
    2.3 findValue==arr[mid],说明找到,就返回

什么时候我们需要结束递归?
1.找到就结束递归
2.递归完整个数组,仍然没有找到findValue,也需要结束递归,当left>right就需要退出了

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

相关阅读更多精彩内容

  • 原文链接: 点这里更多内容就在我的个人博客 BlackBlog.tech 欢迎关注!谢谢大家! 本文源自LeetC...
    BlackBlog__阅读 8,730评论 2 13
  • 二分查找是面试常考的知识点,其方法是在有序序列中寻找满足特定条件的值,存在许多不同的变种,最近在刷Leetcode...
    喵帕斯0_0阅读 3,328评论 0 1
  • 数据结构 Java中的数组有差不多一样的语法。只是java中处理8种基本类型,数组也是作为对象处理的,所以创建对...
    赵宇_阿特奇阅读 4,088评论 0 0
  • 最近在看数据结构,研究了一下常用的几种排序方法:1.冒泡排序,2.选择排序,3.插入排序,4.希尔排序,5.快速排...
    wo883721阅读 5,348评论 0 4
  • 在遇到第八个男朋友“大表哥”之后,小西觉得应该就是他了。 “大表哥”之所以叫大表哥,是因为做表格特别厉...
    西瓜霜小姐阅读 1,724评论 0 0

友情链接更多精彩内容