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
diff --git a/docs/chapter_introduction/algorithms_are_everywhere.md b/docs/chapter_introduction/algorithms_are_everywhere.md
index 239148dd4..bf2b31562 100644
--- a/docs/chapter_introduction/algorithms_are_everywhere.md
+++ b/docs/chapter_introduction/algorithms_are_everywhere.md
@@ -33,6 +33,15 @@
查阅字典这个小学生必备技能,实际上就是著名的「二分查找」。从数据结构的角度,我们可以把字典视为一个已排序的「数组」;从算法的角度,我们可以将上述查字典的一系列操作看作是「二分查找」算法。
+**例三:货币找零**。假设我们在超市购买了 $69$ 元的商品,给收银员付了 $100$ 元,则收银员需要给我们找 $31$ 元。他会很自然地完成以下思考:
+
+1. 可选项是比 $31$ 元面值更小的货币,包括 $1$ , $5$ , $10$ , $20$ 元。
+2. 从可选项中拿出最大的 $20$ 元,剩余 $31 - 20 = 11$ 元。
+3. 从剩余可选项中拿出最大的 $10$ 元,剩余 $11 - 10 = 1$ 元。
+4. 从剩余可选项中拿出最大的 $1$ 元,剩余 $1 - 1 = 0$ 元。完成找零。
+
+在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方案 $20 + 10 + 1 = 31$ 元。从数据结构与算法的角度看,以上方法本质上是「贪心算法」。
+
小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题转移到计算机上,以更高效的方式解决各种复杂问题。
!!! tip
diff --git a/docs/index.assets/btn_download_code.png b/docs/index.assets/btn_download_code.png
new file mode 100644
index 0000000000000000000000000000000000000000..5aa9753b5183e1730e86f43d49e222c18bc8bd3c
GIT binary patch
literal 15059
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