插值查詢方法(優於二分查詢)
阿新 • • 發佈:2018-11-12
插值查詢方法是在二分法相同方法的基礎上進行了一個優化
程式碼如下
package 插值查詢; import java.util.Arrays; import java.util.Scanner; public class Display { public int interpolation(int a[],int b){ int mid,low=1,high; high=a.length-1; while(low<=high) { mid=low+(high-low)*(b-a[low])/(a[high]-a[low]); //區分在於此處其他與二分法一樣 if(b<a[mid]) { high=mid-1; } else if(b>a[mid]) { low=mid+1; } else { return mid+1; } } return 0; } public static void main(String[] args) { Scanner in=new Scanner(System.in); Display s=new Display(); int []a=new int[5]; int b; for(int i=0;i<a.length;i++) { a[i]=in.nextInt(); } Arrays.sort(a); b=in.nextInt(); System.out.println(s.interpolation(a, b)); } }