>  기사  >  웹 프론트엔드  >  javascript 이분법(배열 배열)_javascript 기술

javascript 이분법(배열 배열)_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:28:541134검색

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) ?
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.