Binary search is an algorithm that accepts a sorted list and returns a search element from the list. It provides a dramatic performance boost over searching linearly through a list for an element. Let’s play around number of iterations required for each search method to complete and refactor our linear list search into a binary search function.

let items = [10,5,6,7,1,3,2,4];
items = items.sort((a,b) => {return a-b}) function binarySearch (list, item = null) {
let low = 0;
let high = list.length;
let counter = 0; while (low <= high) {
counter++;
console.log(counter)
let med = Math.floor((low + high) / 2)
let guess = list[med];
if (guess === item) return true;
if (guess > item) high = med - 1;
else low = med + 1
} return null
} console.log(binarySearch(items,3));

最新文章

  1. 【DS】About Stack
  2. Shell入门教程:Shell当中的特殊变量
  3. Ubuntu ssh 服务
  4. 通过终端编译链接运行C文件
  5. 移动端网页 -- 安卓与IOS兼容
  6. 建模算法(二)&mdash;&mdash;整数规划
  7. 【Todo】Java新技术学习笔记-from某技术分析
  8. php学习网址
  9. ThinkPHP - 连贯操作 - 【实现机制】
  10. poj 2356鸽笼原理水题
  11. centos 7 下面安装oracle 11g r2 过程分享
  12. [TFRecord格式数据]利用TFRecords存储与读取带标签的图片
  13. hdu 1166 线段树(sum+单点修改)
  14. Latch导致MySQL Crash
  15. python 实现快速排序
  16. 让我们了解 Ceph 分布式存储
  17. Ueditor Word图片转存交互
  18. loadrunner提高篇 - 关联技术的经典使用
  19. JQuery补充——获取与设置表单值
  20. perl6 Socket: 发送HTTP请求

热门文章

  1. Python之Excel编程
  2. 通过CLI命令将ESXi主机进入维护模式
  3. EF 创建数据库的策略 codefist加快效率!【not oringin!】
  4. 同余方程(NOIP2012)
  5. Java异常throws与throw的区别
  6. HDU 6271 Master of Connected Component(2017 CCPC 杭州 H题,树分块 + 并查集的撤销)
  7. HDU 1426 Sudoku Killer(搜索)
  8. Super Ugly Number -- LeetCode
  9. WC 2018/CTSC 2018/APIO 2018 游记
  10. 九. 常用类库、向量与哈希3.Java语言包(java.lang)简介