1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
public class insertSearch {
public static int insertValue(int[] arr, int left, int right, int findVal) { System.out.println("插值查找次数...");
if (left > right || findVal < arr[0] || findVal > arr[arr.length - 1]) { return -1; }
int mid = left + (right - left) * (findVal - arr[left] / arr[right] - arr[left]); int midVal = arr[mid]; if (findVal > midVal) { return insertValue(arr, mid + 1, right, findVal); } else if (findVal < midVal) { return insertValue(arr, left, mid - 1, findVal); } else { return mid; } } }
|