国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-21 00:33:11
字體:
來源:轉載
供稿:網(wǎng)友
在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);
if(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;
for (i = 0; i < number; i++)
{
array.push(i);
}
array.binarySearch(key);
}
window.onload = function()
{
testArrayBinarySearch();
}

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

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(重新計算中項索引)
middle = Math.floor((stopIndex + startIndex)/2);
}
//make sure it's the right value(確保返回正確的值)
return (items[middle] != value) ? -1 : middle;
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嵊泗县| 阿荣旗| 尉氏县| 岳池县| 河西区| 电白县| 林州市| 安乡县| 淅川县| 法库县| 嘉祥县| 错那县| 舟山市| 如皋市| 建瓯市| 和顺县| 郓城县| 云南省| 临城县| 河源市| 子洲县| 仲巴县| 永平县| 延川县| 横山县| 奉新县| 宁海县| 武清区| 安国市| 青州市| 裕民县| 崇仁县| 乌鲁木齐县| 张家港市| 区。| 哈尔滨市| 山西省| 尼玛县| 永城市| 海淀区| 吉林市|