сортировка 100000 элементов не завершена - PullRequest
0 голосов
/ 24 февраля 2012

Моя программа Bubbleort сортирует 10000 элементов за 4 секунды и перечисляет каждый из них.Если я изменю размер массива на 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 ]

4 голосов
/ 24 февраля 2012

Напомните диапазон вашей счетной переменной; 16bit int работает до 65535; -)

0 голосов
/ 25 февраля 2012

Да, записать в файл;попробуйте использовать fprintf;так что вы можете переключаться между консолью или потоком файлов.И попробуйте использовать уловки типа " FUNCTION " (GNU), чтобы использовать прозрачные и уникальные сообщения журналаНе за что :))

0 голосов
/ 24 февраля 2012

Измените размер буфера консоли, как описано здесь

COORD size;
size.X = 200;
size.Y = 30000;
SetConsoleScreenBufferSize(GetConsoleWindow(), size); 

экспериментируйте с ним

0 голосов
/ 24 февраля 2012

Сколько времени ты ждал ??

Позвольте мне напомнить вам, что пузырьковая сортировка O(n^2).

Таким образом, если 10^4 входные данные ведут к 4s, то 10^5 входные данные приводят к оценке 4 * (10^5)^2 / (10^4)^2 = 400 s = 6 mins and 40 s

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...