[Algorithm] Bisection Algorithm

When I was interviewed before, I was confused when I was asked. When I was in school, I learned algorithms. After I came out to work, I didn't write it. This interview is a reminder for me, so let's learn algorithms. .

binary search

In simple terms, it is an ordered sequence of numbers, each time the middle is compared.

Therefore, the algorithm is as follows:

    public static int binarySearch2 (int [] arrays, int key) {

        int length = arrays.length;
        int mid;
        int start = 0;
        int end = length - 1;

        while (start <= end) {

            mid = (end - start) / 2 + start;

            if (key < arrays[mid]) {
                end = mid - 1;
            } else if (key > arrays[mid]) {
                start = mid + 1;
            } else {
                return mid;
            }
        }

        return -1;
    }

Code: BinarySearch.java

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324938459&siteId=291194637