目录
1.二分查找算法
本文是根据有序数组升序的顺序来实现的
1.1定义
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
1.2流程图
*为什么是 left <= right ?
因为始终要保证查找的对象内至少含有一个元素,且确保能判断对于left和right指向同一个元素的情况。
*为什么是left=middle +1 || right=middle -1 ?
因为在第一次判断的时候就已经排除了middle = find 的这个可能,为了提升效率。可以直接将middle值减去不再第二次判断的序列之中
1.3查找过程
首先,我们需要明确的一个问题就是:二分查找是一个效率较高的算法,但是这是相对于有序的数组来说。接下来就用图解的方法给大家解释一下二分查找算法的查找过程:
// 首先声明定义我们需要的变量
let array = new Array(); // 一个有序数组
let left = 0; // 数组的左端点
let right = array.length - 1; // 数组的右端点
let find; // 我们需要查找的数
let middle; // 数组的中间数
定义的数组: