栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数组解题技巧-二分查找

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组解题技巧-二分查找

二分查找 基本思想
二分查找 :
给定一个目标值 target ,在一个有序数组中找到他的下标位置,
我们可以直接遍历数组,找到与目标值的位置,时间复杂度为O(n)
换一种思路,我们首先找到数组的中间位置mid ,
判断mid与target的大小关系,因为数组是有序的,
所以若,mid>target 则 target在mid的左半区,反之在mid的右半区,
我们按此思路不断调整区间,最终找到target所在位置,
这种方法的时间复杂度可以达到O(logn) 这就是二分查找。
图解

来道题

力扣:二分查找

附个题解
class Solution {
    public int search(int[] nums, int target) {
    int left = 0;
    int right = nums.length-1;
    if(nums[0]==target){
        return 0;
    }
    while(left < right){
      int mid = right - left;
      if(nums[mid] == target){
        return mid;
      }
      else if (nums[mid] > target){
        right = mid -1; 
      }else {
        left = mid;
      }
    }
    return  -1;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号