Привет, я читаю лекцию о структуре данных и алгоритме в моем колледже.Я делаю задание по анализу алгоритма сортировки.Назначения требуют отчета, который включает измерение времени выполнения алгоритма.TA дал нам три набора данных по 30000 целых чисел (в порядке возрастания, в порядке убывания, в произвольном порядке)
Я думал, что для сортировки данных в порядке убывания потребуется больше, чем для сортировки случайно упорядоченных данных.Но в моем алгоритме сортировки пузырьков результат противоположный.
Для сортировки чисел в порядке убывания требуется 2,445 с в реальном времени и 2,409 с по пользовательскому времени, а 3,217 с в реальном времени и 3,159 с по пользовательской.числа в случайном порядке.Этот результат также о моем алгоритме сортировки выбора.Разве это не наихудший случай по убыванию:
//file is opened at main function
int* bubble_prj4(FILE *fp_in)
{
int i, j, temp;
//arr is declared in header file
arr = (int*)malloc(sizeof(int) * 30000);
fread(arr, sizeof(int), 30000, fp_in);
for(i = 0; i < 29999; i++)
for(j = 29999; j > i; j--)
if(arr[j] < arr[j - 1])
{
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
return arr;
}
Я впервые задаю вопрос здесь.Я не знаю, что делаю это правильно.