zoukankan      html  css  js  c++  java
  • 二分法(网上查找结果)

    public int binarySearch(int[] data,int aim){//以int数组为例,aim为需要查找的数
    int start = 0;
    int end = data.length-1;
    int mid = (start+end)/2;//a
    while(data[mid]!=aim&&end>start){//如果data[mid]等于aim则死循环,所以排除
    if(data[mid]>aim){
    end = mid-1;
    }else if(data[mid]<aim){
    start = mid+1;
    }
    mid = (start+end)/2;//b,注意a,b
    }
    return (data[mid]!=aim)?-1:mid;//返回结果
    }
    //针对已经排序好的数组进行查找(对上面代码进行的改进)
    publicstaticbooleanbinarySearch(int[]array,inttarget){
    intleft=0;
    intright=array.length-1;
    intmid=(left+right)/2;
    while(array[mid]!=target&&right>left){
    if(array[mid]>target){
    right=mid-1;
    }
    elseif(array[mid]<target){
    left=mid+1;
    }
    mid=(left+right)/2;
    //判断在缩小范围后,新的left或者right是否会将target排除
    if(array[right]<target){
    break;//若缩小后right比target小,即target不在数组中
    }
    elseif(array[left]>target){
    break;//若缩小后left比target大,即target不在数组中
    }
    }
    return(array[mid]==target);
    }
  • 相关阅读:
    js中变量声明提前
    冒泡与捕获
    win7安装不了nodejs及解决方法
    nodejs配置app的服务
    Ming Rpc
    test
    Java8 Lambda sample (iwantmoon.com出品)
    Spring Mvc 输出Json(iwantmoon.com出品)
    单点登录(iwantmoon.com出品)
    虚拟机WIN10发布.NetCore 3.1
  • 原文地址:https://www.cnblogs.com/zs6666/p/5870881.html
Copyright © 2011-2022 走看看