基本查找:适合数组元素无序(从头到尾查找)
二分查找:也叫折半查找。适合数组元素有序。每次都猜中间的那个元素,比较大或者小,就能减少一半的元素。
思想:
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;