基本查找:適合數組元素無序(從頭到尾查找)
二分查找:也叫折半查找。適合數組元素有序。每次都猜中間的那個元素,比較大或者小,就能減少一半的元素。
思想:
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;