著名科学家沃思提出公式:
数据结构+算法=程序
数据结构是算法设计的基础。数据结构关注的是数据的逻辑结构、存储结构、以及基本操作,而算法更多的是关注如何在数据结构的基础上解决实际问题。算法是编程思想,数据结构则是这些思想的逻辑基础。
我们用算法时间复杂度和空间复杂度评判不同算法的好坏。
算法设计目标:
- 正确性
- 可使用性
- 可读性
- 健壮性
- 高效率和低存储量需求
算法的5个重要特征:
- 有限性
- 确定性
- 可行性
- 输入性
- 输出性
算法设计步骤:
算法分析:
衡量算法效率通常有两种算法:
- 事后统计法
必须执行程序,存在其他元素掩盖算法本质 - 事前分析法
我们一般采用后者。