一句话说清
算法是解决问题的固定步骤,做饭也有算法。
为什么值得懂
算法听起来高深,其实就是“解决问题的固定步骤”:菜谱是算法,查字典是算法,连你早上起床的顺序都是算法。计算机科学做的事,是把这些步骤设计得又快又准。看懂算法思维,你就多了一副“拆问题”的眼镜。
零基础讲解
算法的三要素:输入(给什么)、步骤(怎么一步步处理)、输出(得到什么)。菜谱:输入是食材,步骤是切炒煮,输出是一道菜。
衡量算法好坏的两把尺子:一是快(时间复杂度),二是省(空间复杂度)。《算法图解》里的经典例子:在 100 万条数据里找人,从头到尾一个个找,最坏要 100 万步;用“二分法”每次砍一半,最多 20 步就锁定——这就是算法差距,天壤之别。
几个天天在用的算法:排序(你刷的推荐流按什么排)、搜索(搜索引擎怎么秒回)、推荐(平台怎么猜你喜欢)。它们背后都是精巧的步骤设计。
《决策树》是决策领域的“算法图”,《编程思维》讲怎么把算法写成代码——这篇是它们的地基:先有“固定步骤”的意识,才有后面的一切。
一个思想实验最提神:你的日常生活,本身就是一套套算法的组合——那些让你高效或低效的习惯,差的都是步骤设计。
一个例子
查字典不是从第一页翻起,是翻到中间、看字母大小、再折半——这就是“二分查找”,人类用了几百年的算法。计算机的强项,就是把这套跑得快亿万倍。
常见误解
- 以为算法只有程序员要学:算法思维是通用的“拆问题”方法。
- 以为算法越复杂越好:好算法常常是更简单的。
- 以为算法冷冰冰:推荐算法、导航算法天天在影响你的选择。
- 以为“会写代码”=懂算法:算法是设计步骤的功夫,代码只是表达。
应用场景
- 生活:把重复的事流程化成“步骤清单”,就是给自己写算法。
- 职场:优化工作流,先问“哪一步最慢、哪一步能并行”。
- 写作与创作:写“系统流”网文,算法思维是升级金手指的底层逻辑。
关联知识点
- 硬件与软件(hardware-software,算法跑在硬件上)
- 编程思维(programming-mindset,把算法写成代码)
- 决策树(decision-tree,决策领域的算法)
- 数据结构(data-structures,摆法决定操作贵贱)
- 二进制与编码(binary-encoding,机器只认两种状态)
- 所属主线:因果与系统、语言与意义