当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript实现二分查找法实现代码

Javascript
jQuery Selectors(选择器)的使用(七、子元素篇)
jquery 事件执行检测代码
javascript 支持页码格式的分页类
javascript tabIndex属性
jquery tablesorter.js 支持中文表格排序改进
javascript 返回数组中不重复的元素
javascript 文字上下间隔滚动的代码 符合WEB标准 脚本之家修正版
jQuery 开天辟地入门篇一
jMessageBox 基于jQuery的窗口插件
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
javascript实现的textarea运行框效果代码 不用指定id批量指定
测试你的JS的掌握程度的代码
js 与或运算符 || && 妙用
模仿JQuery.extend函数扩展自己对象的js代码
json 介绍 js简单实例
Ext.MessageBox工具类简介
ASP小贴士/ASP Tips javascript tips可以当桌面
勾选时激活input 否则禁用的javascript代码
javascript 输入文本框时的友好提示
jValidate 基于jQuery的表单验证插件

Javascript 中的 javascript实现二分查找法实现代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 296 ::
收藏到网摘: n/a

一般二分都用到int[]型上.....在js中可能会更灵活的用到a-z上,或者用到拼音...或者用到......
不过值得深思的一个问题是,如果为了实现对拼音之类的二分查找.而经过如下流程是否值得:
1。对拼音排序,貌似代码量不小吧。
2。然后再二分查找。这又需要识别拼音的大小,貌似也不算太小吧。
找到结果的速度快了,可是别人下你的js文件速度慢多了,呵呵,到底舍弃谁。
下面的代码甚至可以10亿条,一样会很快找到,可是用遍例的模式创建那个数组。。。所以还是别尝试了。只是给个思路,下次我再来发个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("二分查找法搜索的结果:"+a);
alert((new Date() - time)/1000);