二分法查找算法演示

该篇博客详细介绍了如何用Java实现二分查找(折半查找)算法,包括主要的代码实现和逻辑分析。通过输入一个整数数组和目标值,程序能够找到目标值在数组中的下标,如果不存在则返回-1。这是一个基础的算法应用实例,适合初学者理解二分查找的工作原理。
import java.util.Scanner;

// 二分法检索 折半查找
class BinarySearch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = {1, 3, 4, 7, 7, 9, 11};
        int value = sc.nextInt();
        System.out.println(value + "的下标为:" + halfSearch(arr, value));
    }

    static int halfSearch(int[] arr, int value) {   // 折半法求value下标
        int min = 0, max = arr.length - 1;
        int mid;
        while (min <= max) {
            mid = (min + max) >>> 1;      // 无符号右移,相当于除以2(2 ^ 1)
            if (value == arr[mid]) {
                return mid;
            } else if (value < arr[mid]) {
                max = mid - 1;
            } else /*(value > arr[mid])*/ {
                min = mid + 1;
            }
        }
        return -1;      // 若没有找到,则返回-1
    }
}


















评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值