作家
登录

javascript 二分法(数组array)

作者: 来源:www.28hudong.com 2013-03-30 01:38:49 阅读 我要评论

在Javascript中,我们可以通过prototype关键字为对象添加新的属性或者是方法,下面是一个为Array对象添加二分法查找功能的方法: 复制代码 代码如下: Array.prototype.binarySearch = function(obj) { var value = 0; var left = 0; var right= this.length; while(left <= right) { var center = Math.floor((left+right)/2); if(this[center] == obj) { value = center; } if(obj < this[center]) { right = center - 1; } else { left = center + 1; } } alert(value); } //如下为测试代码: function testArrayBinarySearch() { var array = new Array(); var key = 678; var number = 1000; for (i = 0; i < number; i++) { array.push(i); } array.binarySearch(key); } window.onload = function() { testArrayBinarySearch(); } 下面是国外的代码 javascript二分法 //Copyright 2009 Nicholas C. Zakas. All rights reserved. //MIT-Licensed, see source file 复制代码 代码如下: function binarySearch(items, value){ var startIndex = 0, stopIndex = items.length - 1, middle = Math.floor((stopIndex + startIndex)/2); while(items[middle] != value && startIndex < stopIndex){ //adjust search area(调整查找范围) if (value < items[middle]){ stopIndex = middle - 1; } else if (value > items[middle]){ startIndex = middle + 1; } //recalculate middle(重新计算中项索引) middle = Math.floor((stopIndex + startIndex)/2); } //make sure it's the right value(确保返回正确的值) return (items[middle] != value) ? -1 : middle; }

  推荐阅读

  jQuery Lightbox 图片展示插件使用说明

一、信息原作者:Benjamin Arthur Lupton当前版本:v1.3.7最终版发布日期:2009年4月25日项目地址:http://jquery.com/plugins/project/jquerylightbox_bal翻译编辑:张鑫旭(zhangxinxu)二、安装在您页面的头部hea>>>详细阅读


本文标题:javascript 二分法(数组array)

地址:http://www.17bianji.com/kaifa2/JS/26537.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)