二分法:

  二分查找,又称为折半查找。

  注意:二分法查找的数组必须是有序的。

/*
获取元素88在数组中第一次出现的索引位置
如果数组元素中存在88,则直接返回88在数组中的索引位置即可。
如果数组元素中没有88,那么直接返回-1即可。
*/
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 保存需要查找的元素值
var value = 4;
// 定义一个变量,用于查找的过程中保存(min+max)/2
var mid;
// 定义两个变量,用于保存查找元素在数组中存在的索引范围
var min = 0,max = arr.length - 1;
// 因为不明确查找次数,索引我们使用死循环
while (true) {
// 更新mid的值,min+max的一半
mid = parseInt((min + max) / 2);
// 判断arr[mid]和value值的大小
if (arr[mid] > num) {
min = mid - 1;
} else if (arr[mid] < num) {
max = mid + 1;
} else {// arr[mid] == value
document.write(mid);
break;
}
//判断查找的元素在数组中不存在的情况
if (max < min) {
document.write(-1);
break;
}
}

最新文章

  1. js实现复选框全选
  2. Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制
  3. 把php上传sae问题要使用IO
  4. jQuery 利用 $.getJson() 实现跨域
  5. 关于hive的存储格式
  6. mig_ddr4_ultrascale
  7. php中的$_SERVER从哪来
  8. Harris Corner(Harris角检测)
  9. oop6 栈 界面
  10. 如何进行服务器Linux系统下的ext文件系统修复
  11. 一文搞懂TCP与UDP的区别
  12. SOCKET.IO 的用法 系统API,
  13. 浅析 @PathVariable 和 @RequestParam(转发,非原创)
  14. 椭圆曲线签名算法的v的定义
  15. linux每日命令(24):Linux 目录结构
  16. redis数据持久化的两种方式
  17. 前端安全 -- XSS攻击
  18. ionic1项目中 ion-slide轮播用ng-repeat遍历数据后自动循环出问题
  19. python-正则表达式练习题
  20. C#委托总结-匿名方法&amp;Lambda表达式

热门文章

  1. 在C语言中破坏函数调用堆栈
  2. pause函数
  3. I Hate It (HDU 1754)
  4. 应用fluent二维单向流泥沙冲刷作用下河床变形代码【转载】
  5. CISCO实验记录八:ACL访问控制
  6. Linux设备驱动程序 之 vmalloc
  7. [go]日志库小例子
  8. SQL-W3School-高级:SQL FULL JOIN 关键字
  9. 多位IT专家分享他们离不开的实用工具
  10. shared pointer