-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInterpolation.java
More file actions
33 lines (31 loc) · 1.05 KB
/
Interpolation.java
File metadata and controls
33 lines (31 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package searchtAlgorithms;
/**
*
* @author Vladimir Aca
*/
public class Interpolation {
public static int find(int[] currentArray, int target, int low, int high){
if(low == high){
if(currentArray[low] == target){
return low;
}
return -1;
}
int midPosition = getMidPositionSpace(low, high, currentArray, target);
if(target > currentArray[midPosition]){
return find(currentArray, target, midPosition + 1, high);
}else if(target < currentArray[midPosition]){
return find(currentArray, target, low, midPosition - 1);
}else{
return midPosition;
}
}
public static int getMidPositionSpace(int low, int high, int[] space, int target){
return low + ((high - low)/(space[high] - space[low])) * (target - space[low]);
}
}