Arr:= Arr0; { заполнить сортируемый массив }
FarmSort(Arr);
Writeln(F, 'Фермерская :', C1:12:0, C2:12:0);
Arr:= Arr0; { заполнить сортируемый массив }
QuickSort(Arr, 1, CSize);
Writeln(F, 'Быстрая :', C1:12:0, C2:12:0);
Writeln('OK !'); Readln;
Close(F);
end.
Вот что получилось для массива из 1000 элементов.
Размер массива = 1000
Алгоритм Количество Количество
сортировки сравнений перестановок
Пузырьковая: 499500 248061
Фермерская : 499500 80887
Быстрая : 5871 2417
Я провел три опыта с массивами из 100, 1000 и 10000 элементов, а результаты занес в две таблички. Что сказать по этому поводу?
Табл. 9 – Количество сравнений в разных методах сортировки
Размер массива | «Пузырьковая» сортировка | «Фермерская» сортировка | Быстрая сортировка |
100 | 4 950 | 4 950 | 417 |
1 000 | 499 500 | 499 500 | 5 871 |
10 000 | 49 995 000 | 49 995 000 | 79 839 |
Из табл. 9 следует, что по количеству сравнений «Фермерская» сортировка не лучше «пузырька». Зато быстрая сортировка оправдывает свое название, – выигрыш составляет от 10 до 600 раз! И чем больше массив, тем заметней этот разрыв.
Табл. 10 – Количество перестановок в разных методах сортировки
Размер массива | Пузырьковая сортировка |