ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの二分法(配列配列)_JavaScriptのスキル

JavaScriptの二分法(配列配列)_JavaScriptのスキル

WBOY
WBOYオリジナル
2016-05-16 18:28:541166ブラウズ

Javascript では、prototype キーワードを使用してオブジェクトに新しい属性またはメソッドを追加できます。次に、Array オブジェクトに二分検索関数を追加するメソッドを示します。

Copy Code コードは次のとおりです。

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- ライセンスあり、ソース ファイルを参照



コードをコピー


コードは次のとおりです:
関数binarySearch(items, value) { var startIndex = 0, stopIndex = items.length - 1, middle = Math.floor((stopIndex startIndex)/2); 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) -1 : middle;
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。