我是最近才开始学习c语言的。在我看的书中的有些练习题总会提到说某一个算法比另一个算法高效,比如有提到说在计算平方根的时候,Xi+1=0.5*(Xi+a/Xi)这种算法要比sqrt()高效。我不懂怎样就算是高效了,还望高手给予指点,十分感谢。
>> 本文固定链接: http://www.vcgood.com/archives/2599
>> 转载请注明: TONYAZITEN 2008年08月06日 于 C语言帝国 发表
我是最近才开始学习c语言的。在我看的书中的有些练习题总会提到说某一个算法比另一个算法高效,比如有提到说在计算平方根的时候,Xi+1=0.5*(Xi+a/Xi)这种算法要比sqrt()高效。我不懂怎样就算是高效了,还望高手给予指点,十分感谢。
>> 本文固定链接: http://www.vcgood.com/archives/2599
>> 转载请注明: TONYAZITEN 2008年08月06日 于 C语言帝国 发表
你必须先 登录才能发表评论。
以下纯属本人理解,有错误的话请指正。
所谓高效,一般是通过对比程序在执行时占用的空间、时间和结果正确性方面来说的。执行结果正确,占用空间越小、执行时间越短的程序效率越高。
但是一般情况下只能在时间和空间这两者之间寻找一个可以接受的平衡点。有时需要用时间换空间,有时又需要用空间换时间。
比如嵌入式系统,对空间和时间的要求都很高。系统要求及时响应,对时间要求高,所占空间不大,对空间要求也高。哪怕减少一条不必要的语句对系统来说都是好的。
这类问题一般都可以在网上搜到答案。
恩 大致意思明白了 只是还不清楚怎样明确的显式的证明哪个算法较高效
还是非常感谢LS的解答
所谓执行效率就是指,两个程序对比下的,单次执行的时间的内存需求,另外在计算执行次数和正确率~!没有讲哪个程序好对不同机器而言可以不同的选择,主要是在执行时间的所需内存的比例中间找到一个最佳点~!