算法
Algorithm
为解决某一类特定问题而设计的、在有限步骤内可执行的、精确的指令序列 。
它规定了解题的输入、输出、操作步骤和逻辑流程,是计算机科学的核心概念之一。
算法的基本特性
算法研究的根本是各种现实问题的求解,将问题抽象为数学模型后。很多现实的问题的求解就可以归结为同一问题的求解。
- 问题是明确的,包含清晰的输入和输出定义。
- 具有可行性,能够在有限步骤、时间和内存空间下完成。
- 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。
常用算法
枚举:直接列举出所有可能情况并逐一验证
搜索:从数据中寻找满足条件的目标
排序:对数据按照某种规则进行有序排列
分治:将问题分解成规模更小的子问题递归求解,最后合并
回溯:尝试探索所有可能解,通过“撤回上一步”回到分支点继续尝试
动态规划:利用子问题最优解构建大问题最优解,通过“保存中间结果”避免重复计算
贪心算法:在每一步选择局部最优解,期望通过局部最优得到整体最优
差分与前缀和:处理区间更新与查询问题的高效技巧。
最短路径算法:寻找图中两点之间的最短路径
启发式优化算法:通过概率或启发信息寻找近似解