问题:程序是否越短越好?是否别人看不懂就证明自己很厉害?
数据结构静态的描述了数据结构之间的关系
高效的程序需要在数据的基础上设计和选择算法
- 算法是特定问题求解步骤的描述
- 在计算机中表现为指令的有限序列
算法是独立存在的一种解决问题的方法和思想像
对于算法而言,语言并不重要,重要的是思想
确定性
- 算法对合法数据能够得到要求的结果
- 算法能够处理非法输入并得到合理的结果
- 算法对于边界数据和压力数据都能得到满足要求的结果
注意:
正确性是算法需要满足的基本的准则,但是作为计算机程序,不可能无限制的满足这条准则
可读性
- 算法要方便阅读,理解和交流
健壮性
- 算法不应该产生莫名其妙的结果
性价比
- 利用最少的资源得到满足要求的结果
注意:
算法可读性是最容易被忽视的然而,程序是写给人看的,而不是计算机。
小结
- 算法为了解决实际问题而存在
- 数据结构是算法处理问题的载体
- 数据结构与算法相辅相成,共同解决问题
程序=数据结构+算法