Skip to content

Instantly share code, notes, and snippets.

@gauravbansal74
Created January 16, 2018 13:19
Show Gist options
  • Save gauravbansal74/38548711f99454321f4b5af90f81f32c to your computer and use it in GitHub Desktop.
Save gauravbansal74/38548711f99454321f4b5af90f81f32c to your computer and use it in GitHub Desktop.
Binary Search Recursive
var input = `1
30 8 10 15 16 18 30`;
function start(input){
if(input !== ""){
var inputSplittedByLine = input.split("\n");
var noOfStatements = inputSplittedByLine[0];
if(noOfStatements == inputSplittedByLine.length-1){
for(var i =1; i < inputSplittedByLine.length; i++){
var currentStatementSplitted = inputSplittedByLine[i].split(" ");
var outputdata = binarySearch(inputSplittedByLine[i].split(" ").slice(1), currentStatementSplitted[0]);
console.log(outputdata);
}
}
}
}
// Binary Search
function binarySearch(arr,i){
var mid = Math.floor(arr.length / 2);
if (arr[mid] == i) {
return arr[mid];
} else if (arr[mid] < i && arr.length > 1) {
return binarySearch(arr.splice(mid, Number.MAX_VALUE), i);
} else if (arr[mid] > i && arr.length > 1) {
return binarySearch(arr.splice(0, mid), i);
}else {
return -1;
}
}
start(input);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment