Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function interpolationSearch(numbers, value) {
- var low = 0;
- var high = numbers.length - 1;
- var mid = 0;
- while (numbers[low] <= value && numbers[high] >= value) {
- mid = Math.round(low + ((value - numbers[low]) * (high - low)) / (numbers[high] - numbers[low]));
- if (numbers[mid] < value) {
- low = mid + 1;
- } else if (numbers[mid] > value) {
- high = mid - 1;
- } else {
- return mid;
- }
- }
- if (numbers[low] == value) {
- return low;
- } else {
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment