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);
相關文章
JavaScript canvas實現(xiàn)雪花隨機動態(tài)飄落
這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)雪花隨機動態(tài)飄落,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02
將json轉(zhuǎn)換成struts參數(shù)的方法
下面小編就為大家?guī)硪黄獙son轉(zhuǎn)換成struts參數(shù)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
Javascript中Object和Map之間的轉(zhuǎn)換方法
在許多編程語言中,Object和Map都是用于存儲鍵值對的數(shù)據(jù)結(jié)構,下面這篇文章主要給大家介紹了關于Javascript中Object和Map之間的轉(zhuǎn)換方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06
JavaScript實現(xiàn)數(shù)字格式化的示例詳解
在處理數(shù)字時,為了提高可讀性,我們通常會將整數(shù)部分的數(shù)字以千分位或百分位分隔,本文將詳細介紹如何使用JavaScript來實現(xiàn)數(shù)字的千分位和百分位分隔,需要的可以參考下2024-04-04

