MatrixCQY
首页
数学笔记
代码笔记
金融笔记
GitHub
首页
数学笔记
代码笔记
金融笔记
GitHub
  • 代码笔记

    • 代码笔记
    • C++ 教程

      • C++ 基础教程
      • C++ 面向对象编程 (OOP)
      • C++ 标准模板库 (STL)
      • C++ 内存管理
      • C++ 文件操作
      • C++ Lambda 表达式
      • C++ 高级特性
    • 数据结构与算法

      • 数据结构与算法简介
      • 线性表 (Linear List)
      • 栈与队列 (Stack & Queue)
      • 哈希 (Hashing)
      • 树与图 (Tree & Graph)
      • 排序算法 (Sorting Algorithms)
      • 查找算法 (Searching Algorithms)
      • 动态规划 (Dynamic Programming)
      • 贪心算法 (Greedy Algorithms)
    • SQL 教程

      • SQL 基础教程
      • SQL 查询 (Queries)
      • SQL 连接 (Joins)
      • SQL 约束 (Constraints)
      • SQL 规范化 (Normalization)
      • 视图与存储过程
      • SQL 高级教程
    • R 语言教程

      • R 语言简介
      • R 数据结构
      • R 流程控制与函数
      • R 数据导入与导出
      • R 统计分析基础
      • R 绘图 (Plotting)
    • Pandas 教程

      • Pandas 简介
      • Series 与 DataFrame
      • Pandas 数据分析
      • Pandas 时间序列分析
      • Pandas 数据透视与可视化

查找算法 (Searching Algorithms)

1. 线性查找 (Linear Search)

  • 时间复杂度:O(n)O(n)O(n)
  • 适用于无序数组。

2. 二分查找 (Binary Search)

  • 时间复杂度:O(log⁡n)O(\log n)O(logn)
  • 适用于有序数组。
int binarySearch(vector<int>& arr, int x) {
    int l = 0, r = arr.size() - 1;
    while (l <= r) {
        int m = l + (r - l) / 2;
        if (arr[m] == x) return m;
        if (arr[m] < x) l = m + 1;
        else r = m - 1;
    }
    return -1;
}

3. 哈希查找 (Hash Search)

  • 时间复杂度:O(1)O(1)O(1)
  • 利用散列表 (Hash Table)。

推荐资源

  • GeeksforGeeks: Searching Algorithms
最近更新: 2026/2/15 04:15
Contributors: MatrixCQY
Prev
排序算法 (Sorting Algorithms)
Next
动态规划 (Dynamic Programming)