Тест состоит в создании массива размером 10000. Инициализируйте его значениями 10000 до 1, а затем используйте сортировку пузырьков, чтобы отменить порядок. Поскольку сортировка пузырьков является одним из худших возможных сортов , это займет довольно много времени. Однако разрешение сроков ограничено.Bubble Sort Time C program
Решение состоит в том, чтобы поставить задачу внутри цикла, которая повторяет ее тысячу или миллион раз - все, что требуется, чтобы получить номера до того, с чем вы можете иметь дело. Я получаю ошибки в своем коде. См. Мой код ниже.
Следующие команды выполняются на Linux:
GCC -o рода sort.c -O2
время ./sort
GCC -m32 -o рода sort.c -O2 -march = pentium4
время ./sort
#include <stdio.h>
void bubbleSort(int numbers[], int array_size)
{
int i, j, temp;
for (i =0; i <array_size; i++)
{
for (j =0; j<array_size-1; j++)
{
if (numbers[j] > numbers[j+1]) {
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
}
int main(void)
{
int array[10000];
int i;
for(i=10000;i!=0;i--)
{
array[i-1]=i;
}
bubbleSort(array,10000);
for(i=0;i<10000;i++)
{
printf("%d\n",array[i]);
}
return 0;
}
В чем проблема с кодом? Компилирует отлично, работает квадратично, как и ожидалось. –
Какие ошибки вы получаете? выглядит нормально для меня. – Deepu
Просьба указать ваши «ошибки», чтобы мы могли попытаться найти лучшее решение. –