package Practice;
import java.util.Scanner;
public class InterpolationSearch {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("배열의 크기를 입력하세요.");
int size = sc.nextInt();
int[] arr = new int[size];
for (int i=0; i<arr.length; i++) {
System.out.println("arr[" + i + "]에 해당하는 숫자를 입력하세요");
arr[i] = sc.nextInt();
}
System.out.println("찾으려는 숫자를 입력하세요.");
int key = sc.nextInt();
int low = 0;
int high = arr.length - 1;
int res = -1;
while (low <= high) {
int middle = (key - arr[low]) / (arr[high] - arr[low]) * (high - low) + low;
if (arr[middle] < key) {
low = middle + 1;
}
else if (arr[middle] > key) {
high = middle - 1;
}
else {
res = middle;
break;
}
}
if (res == -1) {
System.out.println("검색 결과가 없습니다.");
}
else {
System.out.println(res + "에 위치합니다.");
}
sc.close();
}
}