本文是对以下链接的读书笔记,
https://www.hello-algo.com/chapter_introduction/algorithms_are_everywhere/
1.1生活中的算法
- 查字典事实上就是著名的二分法算法
- 整理扑克牌是插入排序
- 货币找零,我们每次都从当前的选择中选择面值最大的货币,这是贪心算法
1.2算法是什么
算法的定义:
算法是在有限的时间内解决特定问题的一组指令或操作步骤,它有如下特性:
- 问题是明确的,包含清晰的输入和输出定义
- 具有可行性,可以在有限的步骤、时间和内存空间下完成
- 各步骤有明确的含义,相同的输入和运行条件下,输出结果始终相同
数据结构的定义:
数据结构是计算机汇总存储和组织数据的方式,数据结构追求实现如下目标:
- 空间占用尽量少,节省内存
- 数据操作尽量快,增删改查
- 提供简洁的数据表示和逻辑信息,以便算法高效运行
在实际情况下,这些目标之间可能是互斥的
算法和数据结构的关系
- 数据结构是算法的基石
- 算法是数据结构发挥作用的舞台
- 算法可以用不同的数据结构实现,但效率可能有很大差别
数据结构就像积木中的一块块积木,算法就是搭积木的过程中的一步步的逻辑。
所以在实际生活中,算法更多指的是算法和数据结构的集合。