微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

rush:js;"> //二分法查数据

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个成绩求总分,最高分,最低分

rush:js;"> 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);

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

rush:js;"> //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) 

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

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

原文地址:https://www.jb51.cc/js/38561.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐