CHARLIE SAYS

查理如是说
DATE 2026-08-24
THEME
SERIES / ALGORITHMS / P-077 · 算法与数据结构

算法 028:算法思想知识体系详解

我们通过理解算法背后常用的算法思想,进行归纳总结,并通过 LeetCode 练习来辅助理解和提升。

算法思想详解

在解决问题时,除了掌握具体的数据结构与算法,更重要的是理解其背后的通用算法思想。本系列将常见的算法思想归纳为以下几类:

  • 分治算法:将一个规模为 N 的问题分解为 K 个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。
  • 动态规划算法:通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
  • 贪心算法:保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。
  • 二分法:分治算法重要的应用之一,比如二分查找。二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
  • 搜索算法:主要包含 BFS、DFS。
  • 回溯算法:Backtracking(回溯)属于 DFS。回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就”回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。

相关文章

系列导航

← JHipster 开发 27:国际化与本地化 目录 Angular 22+ 教程 28:NgModule 到 Standalone 的演进 →
← 返回文章列表