BinarySearch

复制代码
package BisectionMethod;
/**
 * 704.二分查找
 * 给定一个n个元素有序的(升序)整型数组 nums 和一个目标值target ,写一个函数搜索 nums 中的 target,
 * 如果目标值存在返回下标,否则返回 -1。
 */
/**
 * 思路:设定左右指针
 * 找出中间位置,并判断该位置值是否等于 target
 * nums[mid] == target 则返回该位置下标
 * nums[mid] > target 则右侧指针移到中间
 * nums[mid] < target 则左侧指针移到中间
 * 时间复杂度:O(logN)
 * */
public class BinarySearch {
    public static void main(String[] args) {
        int arr[] = {1,2,4,6,7,22,78,89};
        int target = 2;
        int result = binarySearch(arr,target);
        System.out.println(result);
    }
    public static int binarySearch(int[] arr, int target) {
        int left = 0;
        int right = arr.length - 1;
        while (left <= right) {
            int mid = (left + right) / 2;
            int num = arr[mid];
            if (num == target) {
                return mid;
            } else if (num > target) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return -1;
    }
}
复制代码

 

posted @   坤坤无敌  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示