Лабораторная работа: Алгоритми сортування
clrscr ();
N=0;
f=fopen ("massiv. txt","rt");
while (! feof (f))
{
fscanf (f,"%d",X+N);
N++;
}
start= clock ();
HeapSort (X,N);
end= clock ();
printf ("The time was:%f s\n", (end - start) / CLK_TCK);
fclose (f);
getch ();
}
Результат сортування купою | |||||||||
Довжина послідовності | Випадкові | Зростає | Спадає | ||||||
312 | 17 | 927 | 85 | 10009 | середнє | ||||
10 | Пересилання | 82 | 83 | 83 | 83 | 85 | 83,2 | 86 | 77 |
Порівняння | 54 | 56 | 56 | 56 | 60 | 56,4 | 59 | 46 | |
50 | Пересилання | 532 | 535 | 535 | 535 | 544 | 536,2 | 564 | 497 |
Порівняння | 490 | 495 | 499 | 495 | 508 | 497,4 | 537 | 435 | |
200 | Пересилання | 2567 | 2532 | 2544 | 2555 | 2550 | 2549,6 | 2682 | 2410 |
Порівняння | 2808 | 2758 | 2767 | 2784 | 2785 | 2780,4 | 2984 | 2549 | |
1000 | Пересилання | 15100 | 15115 | 15040 | 15059 | 15093 | 15081,4 | 15708 | 14310 |
Порівняння | 18549 | 18561 | 18443 | 18485 | 18485 | 18504,6 | 19541 | 17297 | |
5000 | Пересилання | 87068 | 87185 | 87111 | 86934 | 87020 | 87063,6 | 90962 | 83326 |
Порівняння | 115892 | 116054 | 115947 | 115696 | 115841 | 115886 | 122105 | 109970 | |
10000 | Пересилання | 184192 | 184125 | 184244 | 184256 | 184293 | 184222 | 191422 | 176974 |
Порівняння | 251886 | 251786 | 251951 | 251920 | 251997 | 251908 | 263688 | 240349 |
Кількість пересилань:
Кількість порівняннь:
Перевірка ефективності алгоритмів
Програма генерації послідовностей:
#include <stdio. h>
#include <stdlib. h>
void main ()
{
FILE *f;
int n;
int i,m,s,*a;
if ( (f=fopen ("massiv. txt","wt")) ! =NULL)
{