Binary Search JavaScript

by Anjana Silva

JavaScript

var primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
];
/* console.log("primes " + primes); */
console.log(binarySearch(primes, 79));

/*
	Returns -1 if the the targetValue do not exist in the sortedArray.
  Otherwise returns the index of the targetValue
*/
function binarySearch(sortedArray, targetValue) {
	var startIndex = 0;
  var endIndex = sortedArray.length - 1;
  
  while (startIndex <= endIndex) {
  	var middleIndex = Math.floor((startIndex + endIndex)/2);
    if (sortedArray[middleIndex] === targetValue){
    		return middleIndex;
    } else if (targetValue > sortedArray[middleIndex]) {
    		startIndex = middleIndex + 1;
    } else if (targetValue < sortedArray[middleIndex]) {
    		endIndex = middleIndex - 1;
    }
  }
  
  return -1;
}