【我的Java笔记】二分查找法
来源:互联网 发布:如何清空数据库 编辑:程序博客网 时间:2024/06/06 03:57
1.前提:需针对一个有序数组来进行查找
2.解决思路:
(1)定义最小索引和最大索引
(2)计算出中间索引
(3)拿中间索引对应的元素和要查找的元素进行比较
①如果相等:直接返回中间索引
②若不相等:
大了,左边找
小了,右边找
(4)重新获取最小索引和最大索引,计算出中间索引
(5)回到步骤 (3) 继续查找
3.图解:
例:
public class ArrayDemo {public static void main(String[] args) {int [] arr = {9,13,14,45,96,99};int index = getIndex(arr,96);System.out.println("Index:"+index);}public static int getIndex(int[] arr,int value){//定义最大索引和最小索引int max = arr.length -1 ;int min = 0 ;//计算中间索引int mid = (max + min)/2 ;//拿中间索引对应的元素和要查找的value元素进行比较while(arr[mid] !=value){//当前mid索引对应的元素不等于value元素,分两种情况if(arr[mid]>value){//重新获取最大索引 max = mid -1 ;}else if(arr[mid]<value){min = mid +1 ;}//判断:如果找不到了应该返回-1if(min>max){return -1 ;}//重新获取最大和最小索引,计算中间索引mid = (max+min)/2 ;}return mid ; //如果直接相等,直接返回}}
阅读全文
0 0
- 【我的Java笔记】二分查找法
- 我的二分查找法(递归)
- java 二分查找法
- java:二分查找法
- java二分查找法
- 二分查找法(Java)
- Java二分查找法
- java 二分查找法
- java 二分查找法
- Java 二分查找法
- 二分查找法 -- java
- 二分查找法(Java)
- 二分查找的Java实现
- 二分查找的java实现
- 二分查找的Java实现
- 二分查找的java实现
- 二分查找的JAVA实现
- Java二分查找的使用
- 关于排序算法的理解和复述
- semantic基本环境的搭建
- 应用市场中的应用转让
- jquery插件
- Spring之IOC—控制反转
- 【我的Java笔记】二分查找法
- JS 判断对象是否为空
- [LeetCode] Two Sum
- (POJ) 区间贪心
- Linux简单基础命令
- [模板]字符串hash
- 修改主题和样式
- Log4j的知识点以及相关报错问题解决办法
- dubbo+zookeeper