算法 是一个有限的、定义明确的步骤序列,将输入转化为所需的输出。我们从两个方面评估它:正确性(它是否总是产生正确答案?)和 效率(它使用多少时间和内存?)。
概念
一个有效的算法必须是 明确的(每一步都很清楚)、有限的(它会终止)并为每个有效输入产生 正确的 结果。
示例
python
# Find the maximum value in a list
def find_max(nums):
if not nums:
return None # handle empty input
largest = nums[]
n nums[:]:
n > largest:
largest = n
largest
find_max([, , , ])
这访问每个元素一次。
复杂度
- 时间: O(n) — 遍历 n 个元素一次。
- 空间: O(1) — 仅需一个额外变量。
何时重要 / 常见陷阱
相同的问题,许多算法的成本不同。始终检查边界情况(空输入、单个元素、重复项)— 这是正确性通常出现问题的地方。
为什么这很重要
算法是软件问题解决的核心。
两个程序可以产生相同的答案,但其中一个可能快几千倍。
从正确性 和 效率两个角度思考是将能在测试用例上工作的代码与能在大规模环境下工作的代码区分开来的关键。
这也是技术面试和系统设计讨论的共同语言。
