Javascript では、prototype キーワードを使用してオブジェクトに新しい属性またはメソッドを追加できます。次に、Array オブジェクトに二分検索関数を追加するメソッドを示します。
Array.prototype.binarySearch = function(obj)
{
var value = 0
var left; = 0;
var right= this.length;
while(left <= right)
{
var center = Math.floor((left right)/2); ( this[center] == obj)
{
value = center;
}
if(obj < this[center])
{
right = center - 1;
}
else
{
left = center 1;
}
}
alert(value)
}
// 以下はテストですコード:
関数 testArrayBinarySearch()
{
var 配列 = new Array();
var 番号 = 1000; < 数値 ; i )
{
array.push(i);
array.binarySearch(key);
window.onload = function() >{
testArrayBinarySearch();
}
以下は外部コードです
javascript 二分法//Copyright 2009 Nicholas C. Zakas All Rights Reserved. /MIT- ライセンスあり、ソース ファイルを参照
コードをコピー
コードは次のとおりです:
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) -1 : middle;
}