二分查找 (Binary Search)

🧮 二分查找 (Binary Search)

难度 / Difficulty: 简单 (Easy)
分类 / Category: 查找 (Search)
时间复杂度 / Time Complexity: O(log n)
空间复杂度 / Space Complexity: O(1)


📖 算法简介 / Introduction

二分查找是一种在有序数组中查找目标元素的搜索算法。

Binary search is a search algorithm that finds the position of a target value within a sorted array.


💡 算法原理 / Principle

通过比较数组中间元素与目标值,每次将搜索范围缩小一半。

By comparing the middle element with the target, the search range is halved each time.


📝 代码实现 / Implementation

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

✨ 示例 / Example

在有序数组 [1,3,5,7,9,11,13] 中查找 7,返回索引 3。

Searching for 7 in sorted array [1,3,5,7,9,11,13], returns index 3.


🎯 适用场景 / Scenarios

排序数组搜索, 确定性问题, 近似查找

Sorted array search, Deterministic problems, Approximate search


🔄 扩展阅读 / Further Reading

  • 建议在 LeetCode 或 HackerRank 上刷相关题目
  • 尝试自己实现非递归版本
  • 对比其他同类型算法的性能差异

*本文由 AI 自动生成 Generated by AI*