while (k<=n/2) { j=k+k; if (j<n && h[j]>h[j+1]) j++; /* zde změnit relace, */ if (r<=h[j]) break; /* chceme-li třídit vzestupně */ h[k]=h[j]; k=j; } h[k]=r;
} void heapsort(int h[], int n) { int k,t; for(k=n/2; k>=1;k--) halda(h,n,k); while(n>1) { t=h[1]; h[1]=h[n]; h[n]=t; halda(h,--n,1); } } int main() { int i,pocet; int pole[21]; int cislo; /* clrscr(); */ printf("Zadejte pocet cisel k setrideni:(max 20)\n"); scanf("%d",&pocet); for (i=1;i<=pocet;i++) { printf("Zadejte cislo do pole: \n"); scanf("%d",&cislo); pole[i] = cislo; } heapsort(pole,pocet); printf("Setridene pole: \n"); for (i=1;i<=pocet;i++) printf("%d\n",pole[i]); getch(); return(0); }
98 Algoritmy v jazyku C a C++
Ukázka elektronické knihy, UID: KOS182815