外观
算法入门
算法工程师的分类
算法工程师大体上分科研型、工程型、业务型三种,技能点分别侧重在算法思维、工程能力、业务知识。
算法五大特性
算法的五大特征(有穷性、确定性、可行性、输入、输出)是判断一个操作序列是否为“合格算法” 的核心标准,也是算法设计、优化、验证的基础。
有穷性(Finiteness)
有穷性(Finiteness)是指算法必须在执行有限个步骤后终止,且每个步骤的执行时间都有明确的上限。换句话说,算法不能陷入无限循环或无限递归,必须存在一个 “终止条件”,确保在有限时间内输出结果。
确定性(Definiteness)
确定性(Definiteness)是指算法中的每一个步骤都必须有明确的、无歧义的定义,对于相同的输入,算法总能产生相同的操作序列和输出结果。换句话说,算法的每一步都不存在 “二选一” 的模糊性,计算机能够严格按照步骤执行。
可行性(Feasibility)
可行性(Feasibility)是指算法中的每一个步骤都必须能够通过计算机的基本操作(如算术运算、逻辑运算、数据存储 与读取)在有限时间内完成。换句话说,算法的步骤必须是 “可实现” 的,而不是抽象的、无法落地的理论构想。
输入(Input)
输入(Input)是指算法执行前需要从外部获取的初始数据。输入可以是 0 个或多个,且输入数据的格式、范围必须有明确的定义。0 个输入意味着算法不需要外部数据,直接通过内部逻辑产生输出(如生成固定序列的算法)。
输出(Output)
输出(Output)是指算法执行完成后产生的结果,用于解决特定问题。输出必须是 1 个或多个,且输出结果必须与输入数据存在明确的对应关系(即算法的 “问题解决目标”)。