Binary search

  • Choose an element in at the mid-point at a sorted list

  • Check whether it's smaller than or greater than the element you are looking for

2.Code

  • Iterative (take O (log n) time )

public static int binarySearch(int[] sortedList, int number) {
    int min = 0;
    int max = sortedList.length - 1;
    
    while (min <= max) {
        int mid = min + (max - min) / 2;
        if (sortedList[mid] == number) {
            return mid;
        }
        if (sortedList[mid] > number) {
            max = mid - 1;
        } else {
            min = mid + 1;
        }
    }
    return -1;
}
  • recursive (take O (log n) time, take recursive stack)

3.Complexity

  • The complexity is O(LogN)

Last updated