Binary Search Typescript

by Anjana Silva

TypeScript

const sortedArray = [1, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59];
console.log(binarySearch(sortedArray, 31));


// This function returns the index of the targetValue in the sortedArray.
// If not found, -1 will be returned.
function binarySearch (sortedArray: number[], targetValue: number) : number {
	let startIndex = 0;
    let endIndex = sortedArray.length - 1;
    
    while (startIndex <= endIndex) {
    	let middleIndex = Math.floor((startIndex + endIndex)/2);
        if (sortedArray[middleIndex] === targetValue) {
        	return middleIndex;
        } else if (targetValue < sortedArray[middleIndex]) {
        	endIndex = middleIndex - 1;
        } else if (targetValue > sortedArray[middleIndex]) {
        	startIndex = middleIndex + 1;
        }
    }
    
    return -1;
	
}