查找算法
image.png
有序查找算法
public int search(int[] arr, int target) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == target){//如果数据存在
return i;//返回数据所在的下标,也就是位置
}
}
return -1;//不存在的话返回-1
}
二分查找算法
public static int binarySearch(int[] arr, int target) {
int n = arr.length;
int low = 0, high = n-1;
while(low <= high){
int mid = (low + high) /2;
if (arr[mid] == target) {
return mid; //查找成功
}
if (arr[mid] > target) {
high = mid - 1; //继续查找左半部分
}else {
low = mid + 1; //继续查找右半部分;
}
}
return -1;
}