最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 二分法(數(shù)組array)

 更新時(shí)間:2010年04月24日 19:38:00   作者:  
擴(kuò)展Array對(duì)象,為其添加二分法查找功能,提高查找效率。
在Javascript中,我們可以通過(guò)prototype關(guān)鍵字為對(duì)象添加新的屬性或者是方法,下面是一個(gè)為Array對(duì)象添加二分法查找功能的方法:
復(fù)制代碼 代碼如下:

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);
if(this[center] == obj)
{
value = center;
}
if(obj < this[center])
{
right = center - 1;
}
else
{
left = center + 1;
}
}
alert(value);
}
//如下為測(cè)試代碼:
function testArrayBinarySearch()
{
var array = new Array();
var key = 678;
var number = 1000;
for (i = 0; i < number; i++)
{
array.push(i);
}
array.binarySearch(key);
}
window.onload = function()
{
testArrayBinarySearch();
}

下面是國(guó)外的代碼
javascript二分法 //Copyright 2009 Nicholas C. Zakas. All rights reserved.
//MIT-Licensed, see source file
復(fù)制代碼 代碼如下:

function binarySearch(items, value){
var startIndex = 0,
stopIndex = items.length - 1,
middle = Math.floor((stopIndex + startIndex)/2);
while(items[middle] != value && startIndex < stopIndex){
//adjust search area(調(diào)整查找范圍)
if (value < items[middle]){
stopIndex = middle - 1;
} else if (value > items[middle]){
startIndex = middle + 1;
}
//recalculate middle(重新計(jì)算中項(xiàng)索引)
middle = Math.floor((stopIndex + startIndex)/2);
}
//make sure it's the right value(確保返回正確的值)
return (items[middle] != value) ? -1 : middle;
}

相關(guān)文章

最新評(píng)論

赣榆县| 义乌市| 长寿区| 封丘县| 德钦县| 连云港市| 巴里| 集安市| 瓦房店市| 聊城市| 濮阳市| 庆云县| 安顺市| 北川| 澎湖县| 左云县| 元谋县| 贡山| 玉溪市| 丰顺县| 南雄市| 沽源县| 达州市| 赤水市| 增城市| 通州市| 庆城县| 连州市| 阿坝| 长泰县| 新源县| 铅山县| 开原市| 电白县| 通渭县| 文水县| 固始县| 三穗县| 饶河县| 恩平市| 洛川县|