javascript實現(xiàn)二分查找法實現(xiàn)代碼
更新時間:2007年11月12日 21:23:45 作者:
一般二分都用到int[]型上.....在js中可能會更靈活的用到a-z上,或者用到拼音...或者用到......
不過值得深思的一個問題是,如果為了實現(xiàn)對拼音之類的二分查找.而經(jīng)過如下流程是否值得:
1。對拼音排序,貌似代碼量不小吧。
2。然后再二分查找。這又需要識別拼音的大小,貌似也不算太小吧。
找到結(jié)果的速度快了,可是別人下你的js文件速度慢多了,呵呵,到底舍棄誰。
下面的代碼甚至可以10億條,一樣會很快找到,可是用遍例的模式創(chuàng)建那個數(shù)組。。。所以還是別嘗試了。只是給個思路,下次我再來發(fā)個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);
不過值得深思的一個問題是,如果為了實現(xiàn)對拼音之類的二分查找.而經(jīng)過如下流程是否值得:
1。對拼音排序,貌似代碼量不小吧。
2。然后再二分查找。這又需要識別拼音的大小,貌似也不算太小吧。
找到結(jié)果的速度快了,可是別人下你的js文件速度慢多了,呵呵,到底舍棄誰。
下面的代碼甚至可以10億條,一樣會很快找到,可是用遍例的模式創(chuàng)建那個數(shù)組。。。所以還是別嘗試了。只是給個思路,下次我再來發(fā)個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);
相關(guān)文章
js獲取RadioButtonList的Value/Text及選中值等信息實現(xiàn)代碼
RadioButtonList的Value,Text及選中值等信息想必有很多的朋友都想獲取到,接下來將為你介紹下如何使用js獲取,代碼很詳細,感興趣的你可以參考下,或許對你有所幫助2013-03-03淺談Javascript中Object與Function對象
JavaScript的面向?qū)ο笫腔谠蔚?,所有對象都有一條屬于自己的原型鏈。Object與Function可能很多看Object instanceof Function , Function instanceof Object都為true而迷惑,所以首先看下對象的實例2015-09-09Js逆向?qū)崿F(xiàn)滑動驗證碼圖片還原的示例代碼
這篇文章主要介紹了Js逆向?qū)崿F(xiàn)滑動驗證碼圖片還原的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03