Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. let getMin(x, y) => { return x <= y ? x : y; }
  2. let getMid = (l, h) => { return parseInt((l + h)/2, 10); }
  3.  
  4. let findMin = (arr, l, h) => {
  5. // constrain search to unsorted sub-array containing min value
  6. while (arr[l] > arr[h]) {
  7. let mid = getMid(l, h);
  8. // choose next sub-array
  9. if (arr[mid] > arr[h]) { l = mid + 1 };
  10. if (arr[mid] <= arr[h]) { h = mid };
  11. }
  12. // answer
  13. return arr[l];
  14. }
  15.  
  16. /**
  17. * given a sorted array as input (incrementing order only
  18. * and without duplicates) that may be rotated
  19. * and return the minimum value.
  20. */
  21. let input = [2,3,4,-2,-1,0,1], // input
  22. l = 0, // lower index
  23. h = input.length - 1, // upper index
  24. output = findMin(input, l, h);
  25. console.log(output);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement