diff --git a/searching/js/binary-search.js b/searching/js/binary-search.js index 2cfc4b22..0f16dada 100644 --- a/searching/js/binary-search.js +++ b/searching/js/binary-search.js @@ -1,24 +1,34 @@ -function binarySearch(value, list) { - let first = 0; //left endpoint - let last = list.length - 1; //right endpoint - let position = -1; // After looping if the search item is not found, we will return -1 - let found = false; // When item is found we set its value to true - let middle; + + +/* In this We will learn how to search for an item in Sorted array using Binary Search .*/ + +function binarySearch( item , arr ) { + let first = 0; //left endpoint or index of first array element + let last = arr.length - 1; //right endpoint or index of lat array element . - while (found === false && first <= last) { - middle = Math.floor((first + last)/2); - if (list[middle] == value) { // If the element is present at the middle itself - found = true; - position = middle; - } else if (list[middle] > value) { //if in lower half + while (first <= last) { + let middle = Math.floor((first + last)/2); + if ( arr[middle] == item ) { + // If the element is present at the middle itself + return middle ; + + } + else if ( arr[middle] > item ) { + // Ignore Right Half i.e. items after middle element . last = middle - 1; - } else { //in in upper half + } + else { + // Ignore Right Half i.e. items after middle element . first = middle + 1; } } - return position; + return -1; //Item is not present in Array . } console.log(binarySearch(6,[2, 6, 8])); //expected output = 1 console.log(binarySearch(10,[2, 3, 10, 14])); //expected output = 2 -console.log(binarySearch(1,[2, 6, 8])); //expected output = -1 \ No newline at end of file +console.log(binarySearch(1,[2, 6, 8])); //expected output = -1 + + + +