mramine364

interpolationSearch

May 23rd, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function interpolationSearch(numbers, value) {
  2.     var low = 0;
  3.     var high = numbers.length - 1;
  4.     var mid = 0;
  5.  
  6.     while (numbers[low] <= value && numbers[high] >= value) {
  7.         mid = Math.round(low + ((value - numbers[low]) * (high - low)) / (numbers[high] - numbers[low]));
  8.    
  9.         if (numbers[mid] < value) {
  10.             low = mid + 1;
  11.         } else if (numbers[mid] > value) {
  12.             high = mid - 1;
  13.         } else {
  14.             return mid;
  15.         }
  16.     }
  17.  
  18.     if (numbers[low] == value) {
  19.         return low;
  20.     } else {
  21.         return -1;
  22.     }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment