搜索算法:线性搜索 & 二分查找

LINEAR SEARCH | BINARY SEARCH | O(n) vs O(log n)

核心概念

线性搜索 (Linear Search)

从第一个元素开始,逐个比较直到找到目标或遍历完整个数组。适用于无序数据。
时间复杂度 O(n)

二分查找 (Binary Search)

前提:数组已排序。每次取中间元素比较,根据大小舍弃一半,逐步缩小搜索范围。
时间复杂度 O(log n)

伪代码:从 i=0 到 n-1 逐个比较 arr[i] 与 target
for i from 0 to n-1:
    if arr[i] == target: return i
return -1

在下方「二分查找」演示区选择「线性搜索」模式可对比两种算法的步数差异。

二分查找核心逻辑:left、right、mid 三指针
while left <= right:
    mid = (left + right) / 2
    if arr[mid] == target: return mid
    if arr[mid] < target: left = mid + 1   // 目标在右半
    else: right = mid - 1                   // 目标在左半
return -1
数组可视化
mid(当前比较) left right 已访问