js基本语法--查找(二分查找)

本文详细介绍了二分查找算法的基本思想及其实现过程。通过具体的JavaScript代码示例,展示了如何在一个有序数组中查找指定元素的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:

找到数组的中间数midVal,和你要查找的数(findVal)进行比较,如果midVal > findVal,说明要查找的数(findVal)在数组的左边,就把该数组二分(即只在左边查找)反之,如果midVal < findVal,说明要查找的数在右边。

代码:

<script>
  var arr=[1,4,6,8,9,90,800];
  function binarySearch(arr,findVal,leftIndex,rightIndex){
  
  //防止无穷递归
  if (leftIndex>rightIndex){
	  //提示找不到
	  document.writeln('找不到');
	  return;
  }
  //找到中间这个值
  var midIndex=Math.floor((leftIndex+rightIndex)/2);
  //floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。
  var midVal=arr[midIndex];

  //比较
  if (midVal>findVal){
	  //在左边找
	  binarySearch(arr,findVal,leftIndex,midIndex-1);
  }else if(midVal<findVal){
	  //在右边找
      binarySearch(arr,findVal,midIndex+1,rightIndex);
  }else{
      document.writeln('找到 下标为'+midIndex);
  }
  
  }
  //测试
  binarySearch(arr,4,0,arr.length-1);

  </script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值