java 二分查找法

//java二分查找法,返回索引,數(shù)字必須是有序排列
public static int binarySearch(int[] arr,int key){
    //三個指針變量
    int min=0;
    int max=arr.length-1;
    int mid=0;//中間指針先初始化為0
    //循環(huán)折半
    while (min<=max) {
        //公式,計算中間索引
        mid=(min+max)/2;
        if(key>arr[mid]){
            min=mid+1;
        }else if(key<arr[mid]){
            max=mid-1;
        }else{
            //找到元素,返回索引
            return mid;
        }
    }
    
    return -1;
}

二分查找法,大白話,就是把一個數(shù)組 從中間分成前半部和后半部,如果要查找的key大于中間的值,那么直接查找后半部,以此類推,如果要查找的key小于中間的值,那么直接查找前半部,以此類推,直到找到為止,找不到返回-1,找到返回索引下標,需要注意的是,二分查找法,必須是一個有序的數(shù)組,否則會返回-1,
比較過程是根據(jù)索引下標進行的,數(shù)組長度不可變。


圖片.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容