Created
January 16, 2018 13:19
-
-
Save gauravbansal74/38548711f99454321f4b5af90f81f32c to your computer and use it in GitHub Desktop.
Binary Search Recursive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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