JavaScript用二分法查找数据的实例代码


Posted in Javascript onJune 17, 2017

 整理文档,搜刮出一个JavaScript用二分法查找数据的实例代码,顺便做个笔记

//二分法查数据

 var arr=[41,43,45,53,44,95,23];

 var b=44;

 var min=0;

 var max=arr.length;

 for(var i=1;i<arr.length;i++){ //外层循环控制排序的次数

  for(var j=0;j<arr.length-i;j++){//内层循环控制循环的个数

    if(arr[j]<arr[j+1]){

    z=arr[j];

    arr[j]=arr[j+1];

    arr[j+1]=z;

    }

     }

     }

    // alert(arr[3])

  while(true){           //二分查数就是先把一组数据按顺序排好后,从中间将这一组数据一分为二,看想要查得数在哪个范围内,然后再一分为二,直到找

/* for(var i=0;i<arr.length;i++)*/  //这么写不对?              这个数为止

   var zjs=parseInt((min+max)/2); //因为(min+max)/2有可能为小数,所以加上一个整数强制转换

   if(zjs==min){    当要查找数的数组为一个偶数个数的数组的时候最后剩下的数的个数为2的时候,需要加个条件再给判断一下                 

     if(b=arr[zjs+1]){

       alert(zjs+1);

       break;

       }

       }

   if(b==arr[zjs]){

     alert(zjs)

     break;}

   else if(b>arr[zjs]){

    min=zjs; }

    else{max=zjs}}

10个成绩求总分,最高分,最低分

var arr = new Array(80,70,86,58,90,35,89,67,50,100);

  var sum = 0;

  var maxd = 0;

  var mind = 100;  //想要查最小数最好用满分最大数做可以比较的基数

  for(var i=0;i<arr.length;i++){

    sum = sum +arr[i];

    if(arr[i]>maxd){

      maxd = arr[i];

    }

    if(arr[i]<mind){

      mind = arr[i];

    }

        }

  alert(sum);

  alert(maxd);

  alert(mind);

往数组添加一个不重复的数

//var a=7;

 var a=parseInt(prompt("请输入一个数"));

 var x=0;

 var arr=[1,2,3,4,5]

 for(var i=0;i<arr.length;i++){

   if(a==arr[i]){

     x=1;

     break;}}

    if(x==0){

      arr.push(a)}

      alert(arr.length)

二分法查找数据之前没有接触过类似的题,思路想不出,老师讲完以后还是似懂非懂的样子,自己敲出以后才感觉是懂了,冒泡排序看着挺容易的,但是到了自己去亲自敲代码的时候,自己又出错,不能总是比着葫芦画瓢,应该有自己的理解,为什么要这么敲,多多敲敲代码,避免以后再出类似的小错误,自己定义的变量要记住,前后呼应起来,不能定义的时候用的一个,用的时候又是另一个,还有分号记得加,花括号记得加。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 对象是否存在判断
Jul 15 Javascript
页面中js执行顺序
Nov 09 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
Sep 06 Javascript
js字符串引用的两种方式(必看)
Sep 18 Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
JavaScript函数的特性与应用实践深入详解
Dec 30 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
Dec 31 Javascript
js页面加载后执行的几种方式小结
Jan 30 Javascript
JS实现新建文件夹功能
Jun 17 #Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 #Javascript
JS实现商品筛选功能
Aug 19 #Javascript
node文件上传功能简易实现代码
Jun 16 #Javascript
详解webpack 多入口配置
Jun 16 #Javascript
requirejs + vue 项目搭建详解
Jun 16 #Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 #jQuery
You might like
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
php中大括号作用介绍
2012/03/22 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
类、抽象类、接口的差异
2016/06/13 面试题
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
采用怎样的方法保证数据的完整性
2013/12/02 面试题
护士专业推荐信
2013/11/02 职场文书
社会实践心得体会
2014/01/03 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
感谢信模板大全
2015/01/23 职场文书
运动会通讯稿300字
2015/07/20 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL
Python字典的基础操作
2021/11/01 Python
Tomcat弱口令复现及利用
2022/05/06 Servers
MySQL事务的隔离级别详情
2022/07/15 MySQL