非递归二分查找介绍

  1. 二分查找算法只适用于从有序的数列中进行查找,将数列排序后在进行查找

  2. 二分查找法的运行时间为对数时间O(log2n),即查找到需要的目标位置最多只需要log2n步。

    public class 二分查找 {
    public static void main(String[] args) {
    int arr[]={1,2,35,57,78,99,100};

    System.out.println(run(arr, 99));

    }
    public static int run(int arr[],int target){
    int left = 0;
    int right = arr.length-1;
    while (left<=right){
    int mid = (left + right) / 2;
    if (arr[mid] == target){
    return mid;
    }else if (arr[mid] > target){
    right = mid-1;
    }else{
    left = mid + 1;
    }
    }
    return -1;
    }
    }