public static void main(String[] args) {
int[] arr=new int[100+1];
for(int i=1;i<=100;i++)
{
arr[i]=i+1;
}
System.out.println(insertValueSearch(arr,0,arr.length-1,55));
}
//编写插值查找算法
public static int insertValueSearch(int[] arr,int left,int right,int findval)
{
// findval<arr[0]||findval>arr[arr.length-1] 必须有 不然可能越界
if(left>right||findval<arr[0]||findval>arr[arr.length-1])return -1;
//求出Mid
int mid=left+(right-left)*(findval-arr[left])/(arr[right]-arr[left]);
int midval=arr[mid];
if(findval>midval)
{
return insertValueSearch(arr,mid+1,right,findval);
}
else if(findval<midval)
{
return insertValueSearch(arr,left,mid-1,findval);
}
else return mid;
}
插值查找
最新推荐文章于 2024-12-22 21:05:15 发布