如何比较两个程序的时间复杂性

时间:2017-10-02 15:29:34

标签: java algorithm performance graph time-complexity

我有两个程序,我需要比较这两个程序的时间复杂度/性能,其中n是数百万。我怎么做?我迷路了。也许我在思考它。对于这两个程序,运行它只返回 第n 值,那么我使用哪些数据?

2 个答案:

答案 0 :(得分:1)

我只知道如何。我一直在过度思考它。 我做fib(1)图值和时间
然后是fib(5)
然后
FIB(10)
FIB(100)
FIB(1000)
FIB(10000)
FIB(100000)
FIB(1000000)
然后绘制秒和第n个值的图表

答案 1 :(得分:0)

假设你必须排序存储在数组中的数百万个元素。您可以使用任意两种不同的算法进行排序,例如冒泡排序和合并排序

如果您有10^7元素,那么bubble sort将按最大10^14 步骤排序,merge sort将排序最多4 x 10^8步骤即可。您可以计算两种排序算法的步数

编辑:生成并存储随机数

  #include <time.h>
  #include <stdlib.h>
  #define SIZE 1000000
  int numbers[SIZE]

  void generate()
  {      
  srand(time(NULL));   // should only be called once
  for(int i=0;i<SIZE;i++)
   numbers[i]= rand();      // returns a pseudo-random integer between 0 and RAND_MAX
  }