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代码小结
Oct 14 Javascript
JS实现拖动示例代码
Nov 01 Javascript
用js动态添加html元素,以及属性的简单实例
Jul 19 Javascript
jQuery ajax MD5实现用户注册即时验证功能
Oct 11 Javascript
jQuery中get方法用法分析
Dec 07 Javascript
微信小程序 css使用技巧总结
Jan 09 Javascript
angularjs实现简单的购物车功能
Sep 21 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
Feb 27 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
Mar 12 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
May 31 Javascript
jQuery实现增删改查
Dec 22 jQuery
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
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中最容易忘记的一些知识点总结
2013/04/28 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python实现的一个简单LRU cache
2014/09/26 Python
python常规方法实现数组的全排列
2015/03/17 Python
python 异或加密字符串的实例
2018/10/14 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
天猫精选:上天猫,就够了
2016/09/21 全球购物
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
2015年企业新年寄语
2014/12/08 职场文书
股权投资协议书
2016/03/23 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js