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

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

 更新時間:2010年04月24日 19:38:00   作者:  
擴展Array對象,為其添加二分法查找功能,提高查找效率。
在Javascript中,我們可以通過prototype關(guān)鍵字為對象添加新的屬性或者是方法,下面是一個為Array對象添加二分法查找功能的方法:
復(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);
}
//如下為測試代碼:
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
復(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(重新計算中項索引)
middle = Math.floor((stopIndex + startIndex)/2);
}
//make sure it's the right value(確保返回正確的值)
return (items[middle] != value) ? -1 : middle;
}

相關(guān)文章

  • JS簡單的圖片放大縮小的兩種方法

    JS簡單的圖片放大縮小的兩種方法

    這篇文章介紹了JS簡單的圖片放大縮小的兩種方法,有需要的朋友可以參考一下
    2013-11-11
  • javascript 循環(huán)語句 while、do-while、for-in、for用法區(qū)別

    javascript 循環(huán)語句 while、do-while、for-in、for用法區(qū)別

    本文章介紹了在學(xué)習(xí)javascript中的循環(huán)語句的用法,包while、do-while、for-in、for它們之間的區(qū)別,也是常用的循環(huán)語句了,有需要的朋友可以了解一下
    2012-03-03
  • Javascript實現(xiàn)前端簡單的路由實例

    Javascript實現(xiàn)前端簡單的路由實例

    本文將使用javascript實現(xiàn)一個極其簡單的路由實例。WEB開發(fā)中路由概念并不陌生,我們接觸到的有前端路由和后端路由。后端路由在很多框架中是一個重要的模塊,同樣前端路由在單頁面應(yīng)用也很常見,它使得前端頁面體驗更流暢。
    2016-09-09
  • 微信小程序?qū)崿F(xiàn)左滑刪除效果源碼

    微信小程序?qū)崿F(xiàn)左滑刪除效果源碼

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)左滑刪除效果的相關(guān)資料,左滑刪除效果在app的交互方式中十分流行,比如全民應(yīng)用微信,文中給出了詳細的實現(xiàn)代碼,需要的朋友可以參考下
    2023-08-08
  • javascript中關(guān)于&& 和 || 表達式的小技巧分享

    javascript中關(guān)于&& 和 || 表達式的小技巧分享

    我將會介紹和解析12個簡單但是強大的JavaScript技巧. 這些技巧所有的JavaScript程序員都可以馬上使用, 你不需要成為JavaScript高手才能理解這些.下面我們開始本系列的第一篇文章,介紹下強大的&& 和 || 表達式
    2015-04-04
  • 前端MQTT詳細使用的兩種方法

    前端MQTT詳細使用的兩種方法

    MQTT(消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,這篇文章主要給大家介紹了關(guān)于前端MQTT詳細使用的兩種方法,需要的朋友可以參考下
    2024-07-07
  • JavaScript實現(xiàn)將阿拉伯?dāng)?shù)字轉(zhuǎn)換成中文或大寫中文的方法

    JavaScript實現(xiàn)將阿拉伯?dāng)?shù)字轉(zhuǎn)換成中文或大寫中文的方法

    現(xiàn)在有需求將億元之內(nèi)的阿拉伯?dāng)?shù)字轉(zhuǎn)換成中文,例如:1234轉(zhuǎn)換后變?yōu)橐磺Ф偃脑俎D(zhuǎn)換成壹仟貳佰叁拾肆,所以本文給大家介紹了用JavaScript實現(xiàn)將阿拉伯?dāng)?shù)字轉(zhuǎn)換成中文大寫,感興趣的小伙伴跟著小編一起來看看吧
    2024-11-11
  • 基于javascript bootstrap實現(xiàn)生日日期聯(lián)動選擇

    基于javascript bootstrap實現(xiàn)生日日期聯(lián)動選擇

    這篇文章主要介紹了基于javascript bootstrap實現(xiàn)生日日期聯(lián)動選擇的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • 溫習(xí)Javascript基礎(chǔ)語法之詞法結(jié)構(gòu)

    溫習(xí)Javascript基礎(chǔ)語法之詞法結(jié)構(gòu)

    javascript是一門簡單的語言,也是一門復(fù)雜的語言。這篇文章主要介紹了溫習(xí)Javascript基礎(chǔ)語法之詞法結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 微信小程序左滑刪除功能開發(fā)案例詳解

    微信小程序左滑刪除功能開發(fā)案例詳解

    這篇文章主要介紹了微信小程序左滑刪除功能開發(fā)案例詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11

最新評論

泰州市| 新平| 连南| 望奎县| 个旧市| 武安市| 鄂尔多斯市| 开原市| 德庆县| 三门县| 玉环县| 大埔区| 布尔津县| 松阳县| 饶阳县| 彭水| 奉新县| 云龙县| 樟树市| 班玛县| 新巴尔虎右旗| 河北区| 塔河县| 文登市| 甘洛县| 普定县| 尖扎县| 黄石市| 保山市| 滁州市| 东宁县| 嘉禾县| 磐安县| 乐平市| SHOW| 康乐县| 谷城县| 合作市| 邳州市| 磴口县| 萨嘎县|