二分查找
算法思想:将序列中间位置的值与目标值进行比较,每次操作都会缩小一半的查找范围,直到找到目标值并返回
算法使用条件:有序序列(数组),无重复
算法优缺点:查找速度快,适用于不经常变动而频繁查找的有序序列
算法图示:
伪代码实现(非递归):
int left = 0;
int mid = 0;
int right = nums.length - 1;
while (left <= right) {
mid = left + (right - left) / 2; //避免溢出
if (nums[mid] > target) {
right = mid