public class Interpolation {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println("index = " + interpolation(array, 0, array.length - 1, 1));
}
public static int interpolation(int[]array, int low, int high, int value) {
if(low > high || value < array[low] || value > array[high]) {
return -1;
}
int mid = low + (high - low) * (value - array[low]) / (array[high] - array[low]);
int midValue = array[mid];
if(value < midValue) {
return interpolation(array, low, mid - 1, value);
} else if (value > midValue) {
return interpolation(array, mid + 1, high, value);
} else {
return mid;
}
}
}
插值查找-递归实现
最新推荐文章于 2021-11-06 18:46:12 发布