如何在java中计算算法的空间和时间复杂度。
使用System.nanoTime()执行的总时间是否等于任何算法或函数的时间复杂度?
例子:斐波那契数列中第n个数的空间和时间复杂度估计
发布于 2010-12-15 19:50:06
时间复杂度是理想化机器上可伸缩性的理论指标。(这是关于算法,而不是机器)
System.nanoTime()将告诉您特定的数据输入在特定的机器上花费了多长时间,处于特定的状态。
时间复杂度更适合计算出最坏的情况值,如果您有特定的用例需要考虑,则测量更有用。
发布于 2010-12-15 19:49:34
使用System.nanoTime()执行的总时间是否等于任何算法或函数的时间复杂度?
不是的。在计算程序的复杂性顺序时,通常使用Big-O表示法。Here是您需要了解的所有内容。举例说明。
发布于 2010-12-15 20:24:56
首先,你必须定义算法的基本操作。设置一个计数器来计算基本运算工作了多少次,直到你的算法完成工作。尝试将这个计数器表示为n。在斐波那契级数中,基本运算是加法(将最后两个元素相加得到下一个)要计算第n个数,必须进行n-1相加。因此,斐波那契级数的复杂度为O(n)。
https://stackoverflow.com/questions/4449426
复制相似问题