跳到主要内容

37 篇文档带有标签「algorithms」

查看所有标签

0/1 背包问题

基于容量索引的动态规划,重点解析一维数组逆序更新的核心逻辑。

Huffman 编码

基于已知符号频率构建最优二进制前缀码的算法。

Prim 算法

每次选择跨越割的最轻可用边,逐步生长最小生成树。

二分搜索

在有序随机访问数据或单调谓词上进行边界搜索。

冒泡排序

相邻交换排序、它的不变量,以及狭窄的实际用途。

分数背包问题

物品可无限分割时,按价值密度贪心选取的最优策略。

分治法

拆解独立子问题、分析合并开销及递推式复杂度。

动态规划

基于状态定义与子问题复用的算法设计范式。

回溯算法

基于决策树的深度优先搜索,核心在于状态的可逆操作与有效剪枝。

图算法

按问题选择遍历、最短路径和最小生成树算法的决策地图。

堆排序

使用二叉堆的原地排序,并保证最坏 $n\log n$ 上界。

归并排序

具有可预测运行时间和线性数组工作空间的稳定分治排序。

快速排序

基于分区的排序、枢轴风险、重复值处理和栈纪律。

排序算法

一张关于比较排序、稳定性、自适应性和内存权衡的决策地图。

插入排序

适用于小规模或接近有序区间的自适应稳定排序。

搜索算法

一张关于查找、有序搜索和图遍历的决策地图。

时间复杂度

明确输入度量、计算模型及边界假设后的渐近运行时间分析。

活动选择

基于最早结束时间的最大基数区间调度算法。

空间复杂度

拆解输入、输出、辅助状态与递归栈,精准估算算法的峰值内存占用。

算法

一张用于分析算法、识别设计模式并选择解题策略的知识地图。

线性搜索

不依赖排序或预处理假设的顺序查找。

贪心算法

基于局部选择策略,核心在于证明其正确性(交换论证、割性质等)及适用边界。

选择排序

比较次数固定、交换次数较少的最小值选择排序。