javascript實(shí)現(xiàn)二分查找法實(shí)現(xiàn)代碼
更新時(shí)間:2007年11月12日 21:23:45 作者:
一般二分都用到int[]型上.....在js中可能會(huì)更靈活的用到a-z上,或者用到拼音...或者用到......
不過值得深思的一個(gè)問題是,如果為了實(shí)現(xiàn)對(duì)拼音之類的二分查找.而經(jīng)過如下流程是否值得:
1。對(duì)拼音排序,貌似代碼量不小吧。
2。然后再二分查找。這又需要識(shí)別拼音的大小,貌似也不算太小吧。
找到結(jié)果的速度快了,可是別人下你的js文件速度慢多了,呵呵,到底舍棄誰。
下面的代碼甚至可以10億條,一樣會(huì)很快找到,可是用遍例的模式創(chuàng)建那個(gè)數(shù)組。。。所以還是別嘗試了。只是給個(gè)思路,下次我再來發(fā)個(gè)js的八皇后問題解決方案,呵呵算法很奇妙哦
var array = [];
var key = 482;
var number = 1000;
for(i=0;i<number;i++){
array.push(i);
}
//-->>
var time = new Date();
var a;
var left = 0;
var right= array.length;
while(left<=right){
var center=Math.floor((left+right)/2);
if(array[center] == key) a = center;
if(key < array[center]){
right = center - 1;
}else{
left = center + 1;
}
}
alert("二分查找法搜索的結(jié)果:"+a);
alert((new Date() - time)/1000);
不過值得深思的一個(gè)問題是,如果為了實(shí)現(xiàn)對(duì)拼音之類的二分查找.而經(jīng)過如下流程是否值得:
1。對(duì)拼音排序,貌似代碼量不小吧。
2。然后再二分查找。這又需要識(shí)別拼音的大小,貌似也不算太小吧。
找到結(jié)果的速度快了,可是別人下你的js文件速度慢多了,呵呵,到底舍棄誰。
下面的代碼甚至可以10億條,一樣會(huì)很快找到,可是用遍例的模式創(chuàng)建那個(gè)數(shù)組。。。所以還是別嘗試了。只是給個(gè)思路,下次我再來發(fā)個(gè)js的八皇后問題解決方案,呵呵算法很奇妙哦
復(fù)制代碼 代碼如下:
var array = [];
var key = 482;
var number = 1000;
for(i=0;i<number;i++){
array.push(i);
}
//-->>
var time = new Date();
var a;
var left = 0;
var right= array.length;
while(left<=right){
var center=Math.floor((left+right)/2);
if(array[center] == key) a = center;
if(key < array[center]){
right = center - 1;
}else{
left = center + 1;
}
}
alert("二分查找法搜索的結(jié)果:"+a);
alert((new Date() - time)/1000);
相關(guān)文章
js獲取RadioButtonList的Value/Text及選中值等信息實(shí)現(xiàn)代碼
RadioButtonList的Value,Text及選中值等信息想必有很多的朋友都想獲取到,接下來將為你介紹下如何使用js獲取,代碼很詳細(xì),感興趣的你可以參考下,或許對(duì)你有所幫助2013-03-03JavaScript評(píng)論點(diǎn)贊功能的實(shí)現(xiàn)方法
通過分析評(píng)論功能的邏輯關(guān)系,學(xué)會(huì)如何使用JavaScript實(shí)現(xiàn)評(píng)論、回復(fù)、點(diǎn)贊等各種功能。這篇文章主要介紹了JavaScript評(píng)論點(diǎn)贊功能的實(shí)現(xiàn)方法,需要的朋友可以參考下2017-03-03淺談Javascript中Object與Function對(duì)象
JavaScript的面向?qū)ο笫腔谠蔚?,所有?duì)象都有一條屬于自己的原型鏈。Object與Function可能很多看Object instanceof Function , Function instanceof Object都為true而迷惑,所以首先看下對(duì)象的實(shí)例2015-09-09Echarts橫向堆疊柱狀圖和markLine實(shí)例詳解
一些柱形圖在數(shù)據(jù)量比較多的時(shí)候,橫向排列受到擠壓,導(dǎo)致柱形圖,變的非常細(xì),影響整體的效果,所以應(yīng)該將柱形圖堆疊起來,這樣就會(huì)好很多,下面這篇文章主要給大家介紹了關(guān)于Echarts橫向堆疊柱狀圖和markLine的相關(guān)資料,需要的朋友可以參考下2022-06-06Js逆向?qū)崿F(xiàn)滑動(dòng)驗(yàn)證碼圖片還原的示例代碼
這篇文章主要介紹了Js逆向?qū)崿F(xiàn)滑動(dòng)驗(yàn)證碼圖片還原的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03利用原生JS實(shí)現(xiàn)歡樂水果機(jī)小游戲
這篇文章主要介紹了利用原生JS實(shí)現(xiàn)歡樂水果機(jī)小游戲,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04