package suanfa;
//插值查找
public class InsertValueSearch {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义一个连续均匀的数组,这里从1到100
int[] arr = new int[100];
for(int i=0;i<arr.length;i++) {
arr[i] = i+1;
}
System.out.println("index="+insertValueSearch(arr,0,arr.length,5));
}
private static int insertValueSearch(int[] arr,int left,int right,int value) {
//value<arr[0]||value>arr[arr.length-1],防止越界
if(left>right||value<arr[0]||value>arr[arr.length-1]) {
return -1;//-1表示没有找到
}
int mid = (left+right)/2;
int midValue = arr[mid];
if(value>midValue) {//向右递归
return insertValueSearch(arr,mid+1,right,value);
}else if(value<midValue) {//向左递归
return insertValueSearch(arr,left,mid-1,value);
}else {
return mid;
}
}
}