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

 更新时间:2017年06月17日 09:09:21   作者:superficial。  
本篇文章主要介绍了JavaScript用二分法查找数据的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

 整理文档,搜刮出一个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) 

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

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

相关文章

  • 在layui中layer弹出层点击事件无效的解决方法

    在layui中layer弹出层点击事件无效的解决方法

    今天小编就为大家分享一篇在layui中layer弹出层点击事件无效的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 使用JavaScript动态设置样式实现代码(2)

    使用JavaScript动态设置样式实现代码(2)

    使用onmouseover和onmouseout事件实现不同的效果而且是使用js动态实现,本文有利于巩固你js与css方面的知识,感兴趣的你可以了解下哦,希望本文对你有所帮助
    2013-01-01
  • 基于JavaScript实现年份数字拼图效果

    基于JavaScript实现年份数字拼图效果

    时光荏苒,2022年又要收尾了,公司的年会是不是都安排上了?前几天看到一个年会抽奖系统,功能十分的强大,其中有一个年份数字的拼图效果深深的吸引了哥,决定用JS实现一下该效果,需要的可以参考一下
    2022-12-12
  • 面试官常问之说说js中var、let、const的区别

    面试官常问之说说js中var、let、const的区别

    var、let和const都是JavaScript中用来声明变量的关键字,并且let和 const关键字是在 ES6 中才新增的,下面这篇文章主要给大家介绍了关于var、let、const区别的相关资料,需要的朋友可以参考下
    2022-03-03
  • 如何写好你的JavaScript【推荐】

    如何写好你的JavaScript【推荐】

    在实际工作中,我们应该经常会看到一些功能上没有问题,但编码风格和规范却十分糟糕的代码,这往往会让人不敢再往下阅读,甚至会影响阅读者一天的心情。本文的目的在于帮助那些没有养成良好的编码风格,缺乏相应编码规范意识的JavaScript学习者们改善他们的编码形象。
    2017-03-03
  • js本身的局限性 别让javascript做太多事

    js本身的局限性 别让javascript做太多事

    最近常有人在Q群里发问诸如"怎样让js操作文件"、"怎样让js实现多线程"等问题。
    2010-03-03
  • 7个让JavaScript变得更好的注意事项

    7个让JavaScript变得更好的注意事项

    这篇文章主要介绍了7个让JavaScript变得更好的注意事项,十分详尽,需要的朋友可以参考下
    2015-01-01
  • 如何在Mozilla Gecko 用Javascript加载XSL

    如何在Mozilla Gecko 用Javascript加载XSL

    如何在Mozilla Gecko 用Javascript加载XSL...
    2007-01-01
  • 引入外部js脚本加载慢与页面白屏问题的解决

    引入外部js脚本加载慢与页面白屏问题的解决

    最近做的一个项目需要引入一个外部的第三方js脚本。发现加载比较慢,这篇文章主要介绍了引入外部js脚本加载慢与页面白屏问题的解决,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • javascript操作select元素实例分析

    javascript操作select元素实例分析

    这篇文章主要介绍了javascript操作select元素的方法,可实现针对select元素选中元素时动态改变html元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论