算法

Algorithm

为解决某一类特定问题而设计的、在有限步骤内可执行的、精确的指令序列

它规定了解题的输入、输出、操作步骤逻辑流程,是计算机科学的核心概念之一。

算法的基本特性

算法研究的根本是各种现实问题的求解,将问题抽象为数学模型后。很多现实的问题的求解就可以归结为同一问题的求解。

常用算法

复杂度分析子问题分解

枚举:直接列举出所有可能情况并逐一验证
搜索:从数据中寻找满足条件的目标
排序:对数据按照某种规则进行有序排列
分治:将问题分解成规模更小的子问题递归求解,最后合并
回溯:尝试探索所有可能解,通过“撤回上一步”回到分支点继续尝试
动态规划:利用子问题最优解构建大问题最优解,通过“保存中间结果”避免重复计算
贪心算法:在每一步选择局部最优解,期望通过局部最优得到整体最优
差分与前缀和:处理区间更新与查询问题的高效技巧。
最短路径算法:寻找图中两点之间的最短路径
启发式优化算法:通过概率或启发信息寻找近似解

参考资料

https://www.hello-algo.com/