🧠
⚙️
🗺️
🧭 📓 编程词汇 #4

什么是算法?为什么需要算法?

算法就是解决问题的"行动路线图"——它告诉电脑一步一步该怎么做,好的算法又快又省力!

📜 算法是什么

一份清楚的步骤清单,让电脑照着做就能完成任务。

🍳 像菜谱一样

菜谱告诉你做菜的顺序,算法告诉电脑做事的顺序。

为什么要学

同样的问题,好算法比差算法快几万倍!

🎯 好算法长啥样

正确、清楚、能结束、不浪费、效率高。

📜 一、算法到底是什么?

算法(Algorithm) 就是:解决某个问题的一套清楚的、有限的步骤

把它拆开看:

💡 一句话记住: 算法 = 解决问题的"行动路线图",告诉电脑第一步做什么、第二步做什么……一直到完成任务。
🍳 生活比喻 · 泡一碗方便面:
  1. 撕开包装,拿出面饼放进碗里
  2. 烧一壶开水
  3. 把调料包倒进碗里
  4. 倒入开水,盖住碗
  5. 等 3 分钟
  6. 开吃!

这就是一个"泡面算法"!每一步都清楚、有顺序、能结束。

💻 二、来看一个真实的算法

问题:在一堆数字里找出最大的那个。 下面这个 Python 算法,电脑会一个个比较,把最大的"装进兜里"。

# 算法:在一堆数字里找最大的那个
def find_max(numbers):
    # 第 1 步:先假设第一个数是最大的
    biggest = numbers[0]

    # 第 2 步:一个一个看后面的数
    for n in numbers[1:]:
        # 第 3 步:如果看到更大的,就更新"兜里的最大值"
        if n > biggest:
            biggest = n

    # 第 4 步:把找到的最大值交回来
    return biggest

# 试试看!
print(find_max([3, 7, 2, 9, 5]))  # 输出 9
🧠 这个算法做了什么?
  • 先拿第一个数当"擂主"(biggest = numbers[0])
  • 后面的数依次上台"打擂",谁大谁就当新擂主
  • 看完所有数后,留在台上的就是最大值!

🚀 三、为什么我们需要算法?

同一个问题,可以有很多种解法,但好算法和差算法的差距,可能是几万倍!

想象一下:你要在字典里查"苹果"这个词。

🐌 笨办法

从第 1 页一页一页翻,直到翻到"苹果"。

最差要翻几百页 😱

🚀 聪明算法

翻到中间,看"苹果"在前半还是后半,留下对的那半再翻中间……

最多翻 10 次就找到!⚡

这个聪明算法叫"二分查找"。同样是查字典,笨办法要翻几百次,聪明算法只要十几次!数据越多,差距越大。

所以,算法的意义是:

🗺️ 算法就在你身边:
  • 📱 高德/百度地图导航 → 最短路径算法
  • 🛒 淘宝"猜你喜欢" → 推荐算法
  • 🎮 游戏里怪物追你 → 寻路算法(A*)
  • 📷 手机解锁人脸识别 → AI 算法
  • 🔍 百度搜索 → 排序算法 + 匹配算法

🎯 四、好算法要满足 5 个条件

不是随便写几步就能叫"算法"。一个合格的算法,要满足下面 5 点:

① 有输入 ② 有输出 ③ 有限步 ④ 每步明确 ⑤ 能做到
💡 这 5 条就像菜谱的"基本要求":要告诉你用什么食材(输入)、做成什么菜(输出)、有终点(有限步)、每一步都写得清清楚楚(明确)、并且这些步骤你真的做得到(能做到)。

🧰 五、常见算法家族(先混个脸熟)

你不用现在全懂,先知道有这些"算法家族"就行,以后慢慢学:

算法家族 它们在干嘛 生活例子 🔎 查找算法 在一堆数据里找东西 字典查字、找联系人 📊 排序算法 把数据按顺序排好 考试成绩排名 🛣️ 路径算法 找最短或最快路线 地图导航、外卖路线 🧩 分治算法 把大问题拆成小问题分别解决 切蛋糕分给一群人 🔄 递归算法 自己调用自己,套娃解决 俄罗斯套娃一层层打开 🤖 AI/机器学习算法 从数据中学规律做预测 人脸识别、推荐视频
问题 答案 一句话比喻
算法是什么? 解决问题的有限步骤 📜 像菜谱,告诉电脑一步步怎么做
为什么需要? 更快更省地解决问题 ⚡ 好算法比笨办法快几万倍
好算法长啥样? 5 个条件都满足 🎯 有输入、有输出、有限步、明确、能做到
算法在哪? 无处不在 🗺️ 导航、推荐、游戏、AI 全靠它