根据运行时确定程序的时间复杂度

时间:2014-01-28 21:33:43

标签: algorithm runtime time-complexity

我正在寻找一种基于运行时确定程序时间复杂度的方法。

我已经为不同大小的n绘制了我的结果,现在正在寻找一种方法来确定常数c和n0,以便每个n≥n0时f(n)≤c*(g(n))。

关于该计划:

  

输入:n,元素数量

     

输出:运行时间

测量数据的所有步骤都已完成100次,以获得程序的平均运行时间。

不同大小的n的一些示例值:

  <磷>氮...............运行时(ms)的

     

1000 ......... .1,6

     

10 000 ...... .2222,8

     

100 000 ...... 25213

非常感谢!

pepefatha

2 个答案:

答案 0 :(得分:0)

大多数编程语言都具有获取当前时间的常量时间函数。你可以通过输入程序结束和开始之间的时差来计算程序的时间,并将这些时间绘制成不同大小的n。

答案 1 :(得分:0)

您肯定需要更多数据点。但它看起来像你的n乘以10,大约将你的运行时间乘以100,所以n ^ 2将是我的猜测。

对于常数,你只需要在对数刻度上绘制它并找到截距(从最大值推断,即那些大于n0的值)和y轴,这将是对数(c)中。