Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. function binarySearch(arr, target, left, right, closest=-1) {
  2. if(arr.length <=0) return 0;
  3.  
  4. const mid = Math.floor((left+right)/2);
  5.  
  6. closest = arr[mid] < target ? mid+1 : mid;
  7.  
  8. if(left < right) {
  9. if(arr[mid] < target) {
  10. return binarySearch(arr, target, mid+1, right, closest);
  11. }else if(arr[mid] > target) {
  12. return binarySearch(arr, target, left, mid-1, closest);
  13. }
  14. }
  15.  
  16. return closest;
  17.  
  18. }
  19.  
  20. function findValue(haystack, needle) {
  21. return binarySearch(haystack, needle, 0, haystack.length);
  22. }
  23.  
  24. function insertValue(arr, value) {
  25. const idx = findValue(arr, value);
  26. arr.splice(idx,0,value);
  27. return arr;
  28. }
  29.  
  30. let arr = [];
  31.  
  32. [3,6,1, 0, 10, 9, 4, -1, -5, 20, 19, 4, 3, 2, 7].forEach(value => {
  33. insertValue(arr, value);
  34. console.log(arr);
  35. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement