[Algorithms] Refactor a Linear Search into a Binary Search with JavaScript
2024-10-21 07:50:39
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));
最新文章
- 【DS】About Stack
- Shell入门教程:Shell当中的特殊变量
- Ubuntu ssh 服务
- 通过终端编译链接运行C文件
- 移动端网页 -- 安卓与IOS兼容
- 建模算法(二)&mdash;&mdash;整数规划
- 【Todo】Java新技术学习笔记-from某技术分析
- php学习网址
- ThinkPHP - 连贯操作 - 【实现机制】
- poj 2356鸽笼原理水题
- centos 7 下面安装oracle 11g r2 过程分享
- [TFRecord格式数据]利用TFRecords存储与读取带标签的图片
- hdu 1166 线段树(sum+单点修改)
- Latch导致MySQL Crash
- python 实现快速排序
- 让我们了解 Ceph 分布式存储
- Ueditor Word图片转存交互
- loadrunner提高篇 - 关联技术的经典使用
- JQuery补充——获取与设置表单值
- perl6 Socket: 发送HTTP请求
热门文章
- Python之Excel编程
- 通过CLI命令将ESXi主机进入维护模式
- EF 创建数据库的策略 codefist加快效率!【not oringin!】
- 同余方程(NOIP2012)
- Java异常throws与throw的区别
- HDU 6271 Master of Connected Component(2017 CCPC 杭州 H题,树分块 + 并查集的撤销)
- HDU 1426 Sudoku Killer(搜索)
- Super Ugly Number -- LeetCode
- WC 2018/CTSC 2018/APIO 2018 游记
- 九. 常用类库、向量与哈希3.Java语言包(java.lang)简介