基本查找:适合数组元素无序(从头到尾查找)
二分查找:也叫折半查找。适合数组元素有序。每次都猜中间的那个元素,比较大或者小,就能减少一半的元素。
思想:
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;
二分查找:也叫折半查找。适合数组元素有序。每次都猜中间的那个元素,比较大或者小,就能减少一半的元素。
思想:
A:定义最小索引,最大索引
B:计算出中间索引
C:拿中间索引的值和要查找的元素进行比较。相等就直接返回当前的中间索引的,大了在左边找,小了在右边找
D:重新获取最小索引或最大索引:在左边找:max=mid-1;
E:回到B
int min = 0;