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 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
仿新浪微博登陆邮箱提示效果的js代码
Aug 02 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
详解ESLint在Vue中的使用小结
Oct 15 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
javaScript把其它类型转换为Number类型
Oct 13 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
如何手写简易的 Vue Router
Oct 10 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分页函数完整实例代码
2014/09/22 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
自我反省检讨书
2014/01/23 职场文书
初三新学期计划书
2014/05/03 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
中班上学期个人总结
2015/02/12 职场文书
实名检举信范文
2015/03/02 职场文书
运动员代表致辞
2015/07/29 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书