1、基本介绍
2、应用实例
package search;
public class InsertValueSearch {
public static void main(String[] args) {
int[] arr = {1,8,10,89,1000,1234};
int res = insertValueSearch(arr, 0, arr.length - 1, 1000);
if (res != -1) {
System.out.println("查找成功!");
System.out.println("元素下标:" + res);
} else {
System.out.println("查找失败!");
}
}
private static int insertValueSearch(int[] arr, int left, int right, int val) {
// 确定越界条件
if (left > right || val < arr[left] || val > arr[right]) {
return -1;
}
int mid = left + (right - left) * (val - arr[left]) / (arr[right] - arr[left]);
if (arr[mid] > val) {
return insertValueSearch(arr, left, mid - 1, val);
} else if (arr[mid] < val) {
return insertValueSearch(arr, mid + 1, right, val);
} else {
return mid;
}
}
}