Javascript에서는 프로토타입 키워드를 통해 객체에 새로운 속성이나 메소드를 추가할 수 있습니다. 다음은 배열 객체에 이진 검색 기능을 추가하는 방법입니다.
Array.prototype.binarySearch = function(obj)
{
var value = 0
var left; = 0;
var right= this.length; while(left <= right)
{
var center = Math.floor((왼쪽 오른쪽)/2)
( this[center] == obj)
{
value = center;
}
if(obj < this[center])
{
right = center - 1;
}
else
{
left = center 1
}
}
alert(value);
}
//다음은 테스트입니다. 코드:
function testArrayBinarySearch()
{
var array = new Array();
var key = 678;
var number = 1000; < 숫자 ; i )
{
array.push(i);
}
array.binarySearch(key)
}
window.onload = function()
{
testArrayBinarySearch();
}
다음은 외부 코드입니다
javascript dichotomy//Copyright 2009 Nicholas C. Zakas
/ /MIT- 라이센스 있음, 소스 파일 보기
함수 BinarySearch(items, value) {
var startIndex = 0,
stopIndex = items.length - 1,
middle = Math.floor((stopIndex startIndex)/2)
while(items[ middle] != value && startIndex < stopIndex){
//검색 영역 조정(검색 영역 조정)
if (value < items[middle]){
stopIndex = middle - 1; >} else if (value > items[middle]){
startIndex = middle 1
}
//recalculate middle (가운데 항목 인덱스 다시 계산)
middle = Math.floor(( stopIndex startIndex)/2) ;
}
//값이 올바른지 확인하세요(올바른 값을 반환해야 합니다)
return (items[middle] != value) ?
}