二分查找的非递归实现

public class erfen {
    
    
    public static void main(String[] args) {
    
    
        int[] arr  = {
    
    1,5,25,66,88,99,444};
        int i = erFen(arr, 99);
        if (i == -1){
    
    
            System.out.println("数组中没有该数");
        }else{
    
    
            System.out.println("该数在数组中的索引是"+i);
        }
    }
    public static int erFen(int[] arr , int findVal){
    
    
        int left = 0;
        int right = arr.length-1;
        while (left <= right){
    
    
            int mid = (left + right) / 2;
            if (arr[mid] == findVal){
    
    
                return mid;
            }else if (arr[mid] > findVal){
    
    
                right = mid -1;
            }else {
    
    
                left = mid +1;
            }
        }
        return -1;
    }

}
该数在数组中的索引是5

Guess you like

Origin blog.csdn.net/weixin_45032905/article/details/121680470