本文共 1187 字,大约阅读时间需要 3 分钟。
从求解1+2+3+······+n-1+n引出的一些思考。
又是一个递归的使用。
递归算法中可以看出:经过了两次判断,和n次方法的调用,对于100这么小的数据是看不出来时间方面的消耗,但是如果一旦数据非常大的时候这个算法的时间效率是很低的。
通过一个简单的计算问题,可以有不同的设计思路,也同样产生不同的时间复杂度,还有代码的编辑量。
编写代码的优劣就可以体现出来。对于程序设计而言,一个问题的解决至少得考虑下问题:
通常情况下,时间的利用率和空间的利用率总是矛盾的,我们的取舍要看这两种资源的丰富程度。计算机起初发展的时候,内存空间特别小,所以就特别注重空间的利用率,比如MCS 51单片机,它的内存空间一般就是64KB大小,所以对于它来说解决空间的问题才是主要矛盾;而对于现在的PC机内存大多数已经达到2G或以上,所以解决时间的问题才是主要矛盾。
当然时间是不可再生资源,所以现如今的程序设计对于时间效率有着很高的要求,对于Java程序设计,由于它本身的虚拟机机制,所以在效率方面同比C语言要低一些,因此更应在注重程序设计过程中的编码方式,算法设计,变量的定义,方法的调用等等,尽可能的提高运行效率。
本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/839633,如需转载请自行联系原作者