查找算法

基本查找:適合數組元素無序(從頭到尾查找)

二分查找:也叫折半查找。適合數組元素有序。每次都猜中間的那個元素,比較大或者小,就能減少一半的元素。

思想:

A:定義最小索引,最大索引

B:計算出中間索引

C:拿中間索引的值和要查找的元素進行比較。相等就直接返回當前的中間索引的,大了在左邊找,小了在右邊找

D:重新獲取最小索引或最大索引:在左邊找:max=mid-1;  在右邊找:min=mid+1;

E:回到B

int min = 0;

        int max = arr.length – 1;

        int mid = (max + min) / 2;

        while (arr[mid] != value) {

            if (arr[mid] > value) {

                max = mid – 1;

            }

            if (arr[mid] < value) {

                min = mid + 1;

            }

            if (min > max) {

                return -1;

            }

            mid = (min + max) / 2;

        }

        return mid;

点赞