用Java实现二分查找代码实现

用Java实现二分查找代码实现

直接上代码`


```java
package day05.BigDecimal;

public class MyInterger04 {
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5,6,7,8,9};
        int num = 5;
        int index = MyIntergerIndex(arr,num);
        System.out.println(index);
    }

    private static int MyIntergerIndex(int[] arr, int num) {
        // 设置最小索引
        int min = 0;
        // 设置最大索引
        int max = arr.length;
        // 进行二分查找
       while (min <= max){
           int mid = (max + min) / 2; // 设置mid
           if (arr[mid] > num ) {
              max = mid - 1; // 确定中间的变量
           } else if(arr[mid] < num){
               min = min + 1;
           }else {
               return mid;
           }
       }
       // 如果min大于max则说明该元素在该数组中不存在返回 - 1
        return -1;
    }
}

思考解释:

二分查找是建立在一个必须是从大到小或者是从小到大的一组数组中,拿到一个数组确定数组的最大索引,以及最小索引位置。中间的变量值通过最大索引减去最小索引在同时除以他们的个数,来进行确认的,如果你的那个索引小于中间的索引就给最小的索引加1,如果你的那个索引大于中间的索引就给最小的索引减1,通过缩小划分范围来进行找。

##

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值