Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.90 KB | None | 0 0
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4.  
  5. int tab[10];
  6. //WYSWIETL..............................................
  7. void Wyswietl(int tab[],int n){
  8. int i;
  9.         for(i=0;i<n;i++){
  10.         printf("%d ," , tab[i]);
  11.         }
  12.         printf("\n");
  13. }
  14. //KOPCOWANIE.............................................
  15. void Kopcowanie(int tab[], int n, int korzen){
  16. int heapsize;
  17. int l; //lewy syn
  18. int p; //prawy  syn
  19. int najwiekszy;
  20. int temp;
  21. heapsize = n;
  22. //numery dzieci
  23.         l=2*korzen+1;
  24.         p=2*korzen+2;
  25. //najwiekszy element - zamiana
  26.         if (l<=n && tab[l]>tab[korzen]) najwiekszy = l;
  27.         else najwiekszy = korzen;
  28.         if (p<=n && tab[p]>tab[najwiekszy])  najwiekszy = p;
  29. //zamiana
  30.         if(najwiekszy!= korzen){
  31.         temp=tab[korzen];
  32.         tab[korzen]=tab[najwiekszy];
  33.         tab[najwiekszy]=temp;
  34.         Kopcowanie(tab, n, najwiekszy);
  35.         }
  36. }
  37. //BUDOWANIE KOPCA.....................................
  38. void Budowanie(int tab[], int n){
  39. int heapsize;
  40. int wielkosc;
  41. int i;
  42. wielkosc=n;
  43. heapsize=n/2;
  44. printf("\n  heapsize: %d\n" , heapsize);
  45.         for(i=(heapsize-1); i>=0; i--){
  46.         Kopcowanie(tab,n,i);
  47.         Wyswietl(tab,n);
  48.         }
  49. }
  50. //SORTOWANIE KOPCA....................................
  51. void Sortowanie(int tab[], int n){
  52. int i;
  53. int temp;
  54. n--;
  55.         for(i=n; i>0;i--){
  56.         temp=tab[0];
  57.         tab[0]=tab[i];
  58.         tab[i]=temp;
  59.         n--;
  60.         Kopcowanie(tab,n,0);
  61.         }
  62. }
  63.  
  64. void wczytaj_plik()
  65. {
  66.  
  67. int i=0;
  68. FILE *in; char bufor[512];
  69. in = fopen("wej.txt", "rt");
  70.  
  71. while (feof(in)==0)
  72. {
  73.  fscanf(in, "%i\n" ,&tab[i]);
  74.  i++;
  75. }
  76.  
  77. fclose(in);
  78.  
  79. }
  80. //////////////////////////////////////////////////////
  81. int main(){
  82.  
  83. int n=10;
  84. wczytaj_plik();
  85.  
  86. printf("Przed:\n");
  87. Wyswietl(tab,n);
  88. Budowanie (tab,n);
  89. printf("\nPo:\n");
  90. Wyswietl(tab,n);
  91. Sortowanie(tab,n);
  92. Wyswietl(tab,n);
  93.  
  94.  
  95. getch();
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement