二分法的多种编写

二分法第一种

在[left,right]范围内寻找target

public int BinarySearch(int []a,int n,int target){
        int left=0;int right=n-1;//在[left,right]范围内寻找target
        while (left<=right){//当l==r时,区间[l,r]有效
            int mid=(left+right)/2;
            if (a[mid]==target){
                return mid;
            }
            else if (a[mid]>target){
                right=mid-1;
            }
            else {
                left=mid+1;
            }
        }
        return -1;
    }

二分法第二种

在[left,right)范围内寻找target

public int BinarySearch1(int []a,int n,int target){
        int left=0;int right=n;//在[left,right)范围内寻找target
        while (left<right){//当l==r时,区间[l,r)有效
            int mid=(left+right)/2;
            if (a[mid]==target){
                return mid;
            }
            else if (a[mid]>target){
                right=mid;//此时需修改,让其在左开右闭的区间内
            }
            else {
                left=mid+1;
            }
        }
        return -1;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一维数组 首先开始最基本的Binary Search, 数组是有序的,但是有重复数。例题: Search for ...
    dol_re_mi阅读 2,521评论 0 2
  • 二分查找是面试常考的知识点,其方法是在有序序列中寻找满足特定条件的值,存在许多不同的变种,最近在刷Leetcode...
    喵帕斯0_0阅读 587评论 0 1
  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,396评论 0 3
  • 扔垃圾的时候看到流浪猫在垃圾桶上觅食,觉得很难过,忍不住跑回家里拿了点面包想喂它,我一接近它它就警觉性逃跑到了车底...
    空闲着不如找点事阅读 256评论 0 0
  • ​ 满格 高考结束后的第二天,白天自己喝了点酒,晚上聚会喝了点酒,胆子壮了上来,懵头懵脑就找女神告白去了,有风萧萧...
    文学汇作者阅读 598评论 0 0

友情链接更多精彩内容