排序100000个元素无法完成

时间:2012-02-24 10:34:41

标签: c visual-studio-2010

我的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]);
}

4 个答案:

答案 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来使用透明且唯一的日志消息。 不客气的是:)