亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • 判斷數(shù)組是否包含某個(gè)元素的js函數(shù)實(shí)現(xiàn)方法

    判斷數(shù)組是否包含某個(gè)元素的js函數(shù)實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇判斷數(shù)組是否包含某個(gè)元素的js函數(shù)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • IE及IE6瀏覽器中判斷JS文件加載成功失敗的方法

    IE及IE6瀏覽器中判斷JS文件加載成功失敗的方法

    這篇文章主要介紹了IE及IE6瀏覽器中判斷JS文件加載成功失敗的方法,本文使用vbscript來(lái)解決這個(gè)問(wèn)題,需要的朋友可以參考下
    2015-02-02
  • 在TypeScript項(xiàng)目中搭配Axios封裝后端接口調(diào)用

    在TypeScript項(xiàng)目中搭配Axios封裝后端接口調(diào)用

    這篇文章主要介紹了在TypeScript項(xiàng)目中搭配Axios封裝后端接口調(diào)用,本文記錄一下在?TypeScript?項(xiàng)目里封裝?axios?的過(guò)程,之前在開(kāi)發(fā)?StarBlog-Admin?的時(shí)候已經(jīng)做了一次封裝,不過(guò)那時(shí)是JavaScript跟TypeScript還是有些區(qū)別的,需要的朋友可以參考下
    2024-01-01
  • JS控件的生命周期介紹

    JS控件的生命周期介紹

    JS控件的生命周期跟其他平臺(tái)UI的生命周期類似,但是又有自己的特點(diǎn),我們只有將控件的生命周期劃分清晰,所有的控件編寫、mixins的編寫和plugin的編寫才能遵循控件的生命周期做統(tǒng)一的管理
    2012-10-10
  • HTML的select控件美化

    HTML的select控件美化

    本文主要介紹了HTML的select控件美化以及js實(shí)現(xiàn)select選擇功能的方法步驟。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • echarts圖表中x軸和y軸的配置指南

    echarts圖表中x軸和y軸的配置指南

    這篇文章主要給大家介紹了關(guān)于echarts圖表中x軸和y軸的配置指南,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用echarts具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • [JS源碼]超長(zhǎng)文章自動(dòng)分頁(yè)(客戶端版)

    [JS源碼]超長(zhǎng)文章自動(dòng)分頁(yè)(客戶端版)

    [JS源碼]超長(zhǎng)文章自動(dòng)分頁(yè)(客戶端版)...
    2007-01-01
  • 微信小程序日歷效果

    微信小程序日歷效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序日歷效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS實(shí)現(xiàn)遍歷不規(guī)則多維數(shù)組的方法

    JS實(shí)現(xiàn)遍歷不規(guī)則多維數(shù)組的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)遍歷不規(guī)則多維數(shù)組的方法,涉及javascript數(shù)組遞歸遍歷相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2018-03-03
  • JS正則獲取HTML元素的方法

    JS正則獲取HTML元素的方法

    這篇文章主要介紹了JS正則獲取HTML元素的方法,結(jié)合實(shí)例形式分析了JS針對(duì)頁(yè)面HTML元素正則操作相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下
    2017-03-03

最新評(píng)論