我的bubblesort程序在4秒内对10000个元素进行排序并列出其中的每个元素。如果我将数组的大小更改为排序为100000,它将在一定程度上停止...
有谁能告诉我如何解决这个问题?该代码适用于10000元素顺便说一句。我需要使用malloc分配内存吗?如果是这样,你能告诉我如何实现这个,因为我对c
相当新#define SIZE 100000
for(i = 6; i < SIZE; i++)
{
values[i] = (rand()%20000*3.237);
printf("%f\t", values[i]);
}
答案 0 :(得分:4)
提醒你的反变量的范围; 16bit int工作到65535; - )
答案 1 :(得分:0)
你等了多少时间?
让我提醒您,冒泡排序为O(n^2)
。
因此,如果10^4
输入导致4s
,则10^5
输入会导致估算4 * (10^5)^2 / (10^4)^2 = 400 s = 6 mins and 40 s
。
答案 2 :(得分:0)
按照here
所述更改控制台缓冲区大小COORD size;
size.X = 200;
size.Y = 30000;
SetConsoleScreenBufferSize(GetConsoleWindow(), size);
试验它
答案 3 :(得分:0)
是的,写入文件;尝试使用fprintf;所以你可以在控制台或文件流之间切换。并尝试使用像“ FUNCTION ”(GNU)这样的gimmics来使用透明且唯一的日志消息。 不客气的是:)