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)文章
JavaScript數(shù)組之展開運(yùn)算符詳解
這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組之展開運(yùn)算符的相關(guān)資料,你可以通過展開操作符(Spread operator)擴(kuò)展一個(gè)數(shù)組對(duì)象和字符串,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
JavaScript canvas實(shí)現(xiàn)雪花隨機(jī)動(dòng)態(tài)飄落
這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實(shí)現(xiàn)雪花隨機(jī)動(dòng)態(tài)飄落,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
javascript正則表達(dá)式基礎(chǔ)知識(shí)入門
很長(zhǎng)時(shí)間沒看正則表達(dá)式了,碰巧今天用到,溫故知新了一把,這里記錄下來,分享給大家,都是些基礎(chǔ)的知識(shí),重點(diǎn)給大家講解的是正則表達(dá)式中4種常用的方法,50% 的舉一反三練習(xí)中的原創(chuàng)。2015-04-04
將json轉(zhuǎn)換成struts參數(shù)的方法
下面小編就為大家?guī)硪黄獙son轉(zhuǎn)換成struts參數(shù)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
Javascript中Object和Map之間的轉(zhuǎn)換方法
在許多編程語言中,Object和Map都是用于存儲(chǔ)鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于Javascript中Object和Map之間的轉(zhuǎn)換方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
JavaScript實(shí)現(xiàn)數(shù)字格式化的示例詳解
在處理數(shù)字時(shí),為了提高可讀性,我們通常會(huì)將整數(shù)部分的數(shù)字以千分位或百分位分隔,本文將詳細(xì)介紹如何使用JavaScript來實(shí)現(xiàn)數(shù)字的千分位和百分位分隔,需要的可以參考下2024-04-04

