<h1>Binary search algorithm in JavaScript</h1>
<p>Please check javascript code.</p>
/***************************************
* search
***************************************/
var binarySearch = function(list, target){
var middleIndex,
middle,
result = 'nothing';
while(list.length > 0){
var middleIndex = Math.floor(list.length/2);
var middle = list[middleIndex];
if(middle === target){
result = target;
break;
}
if(middle > target){
list = list.slice(0,middleIndex);
}else{
list = list.slice(middleIndex+1);
}
}
return result;
};
/***************************************
* search using closure
***************************************/
//var binarySearch = function(list, target){
// var result;
//
// (function search(list, target){
// var middleIndex = Math.floor(list.length/2);
// var middle = list[middleIndex];
//
// if(middle === target){
// result = target;
// return;
// }
//
// if(middle > target){
// list = list.slice(0,middleIndex);
// }else{
// list = list.slice(middleIndex+1);
// }
//
// if(list.length === 0){
// result = 'nothing';
// }else{
// search(list, target);
// }
//
// })(list, target);
//
// return result;
//};
/***************************************
* main
***************************************/
var list = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],
target = 15,
result = binarySearch(list, target);
console.log(list);
console.log('index of tartget(' + target + ') is ' + result);
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.