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