程序的灵魂

引出问题 程序是否越短越好?程序是不是别人读不懂就证明自己很厉害? 数据结构静态的描述了数据元素之间的关系。 高效的的程序需要在数据结构的基础上选择合适的算法。 算法是特定问题求解的步骤,在计算机中表现为指令的有限序列。 算法是独立存在的的一种解决问题的方法和思想,对于算法而言,思想最重要。 算法的特性: *输入:*算法具有0个或多个输入。 *输出:*算法至少有一个或多个输出。 *有穷性:*算法在有限的步骤之后会自动结束而不会无限循环。或者可以说是在可接受的范围内能自动结束。 *确定性:*算法的每一步都会都有确定的的含义,不会出现二义性。 *可行性:*算法的每一步都是可行的。 正确性: (1)算法对于合法数据能得到正确的结果。 (2)算法能处理非法的数据,并且得到合理的结果。 (3)算法对于边界数据和压力数据都能得到满足要求的结果。 *注意:*正确性是算法最需要满足的基本准则,但是作为计算机程序,不可能无限制的满足这个条件。 *可读性:*算法要方便阅读,理解和交流。 *健壮性:*算法不应该出现莫名其妙的结果。 *性价比:*用最少的资源得到最满意的结果。 *注意:*现在的程序要看重可读性,因为代码不只是用来给计算机看到,并且也是用来给人看的,可读性好能便于他人理解。 总结 算法是为了解决实际问题而存在。 数据结构是算法处理问题的载体。 数据结构与算法相辅相成,共同解决问题。 程序的灵魂: 程序 = 数据结构 + 算法