diff --git a/01_introduction_to_algorithms/javascript/01_binary_search.js b/01_introduction_to_algorithms/javascript/01_binary_search.js new file mode 100644 index 0000000..1d5cc26 --- /dev/null +++ b/01_introduction_to_algorithms/javascript/01_binary_search.js @@ -0,0 +1,26 @@ +'use strict'; + +function binary_search(list, item) { + let low = 0; + let high = list.length - 1; + + while (low <= high) { + let mid = Math.floor((low + high) / 2); + let guess = list[mid]; +  if (guess === item) { + return mid; + } + if (guess > item) { + high = mid - 1; + } else { + low = mid + 1; + } + } + + return null; +} + +const my_list = [1, 3, 5, 7, 9]; + +console.log(binary_search(my_list, 3)); // 1 +console.log(binary_search(my_list, -1)); // null