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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 14:10:23
字體:
供稿:網(wǎng)友
在Javascript中,我們可以通過prototype關(guān)鍵字為對(duì)象添加新的屬性或者是方法,下面是一個(gè)為Array對(duì)象添加二分法查找功能的方法:
代碼如下:
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();
}

下面是國外的代碼
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(重新計(jì)算中項(xiàng)索引)
middle = Math.floor((stopIndex + startIndex)/2);
}
//make sure it's the right value(確保返回正確的值)
return (items[middle] != value) ? -1 : middle;
}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 兴国县| 华安县| 莱州市| 阜宁县| 嘉兴市| 佳木斯市| 佛冈县| 纳雍县| 辉南县| 白沙| 夹江县| 探索| 贵定县| 石家庄市| 岑溪市| 台北县| 克什克腾旗| 加查县| 朝阳区| 玛多县| 天长市| 新乐市| 余江县| 西乌珠穆沁旗| 翁源县| 五原县| 宝坻区| 淅川县| 项城市| 任丘市| 法库县| 克山县| 光泽县| 宁化县| 潮州市| 长治市| 夏邑县| 裕民县| 吉安市| 新野县| 江北区|