Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream.h>
- #include <conio.h>
- #include <stdio.h>
- int tab[10];
- //WYSWIETL..............................................
- void Wyswietl(int tab[],int n){
- int i;
- for(i=0;i<n;i++){
- printf("%d ," , tab[i]);
- }
- printf("\n");
- }
- //KOPCOWANIE.............................................
- void Kopcowanie(int tab[], int n, int korzen){
- int heapsize;
- int l; //lewy syn
- int p; //prawy syn
- int najwiekszy;
- int temp;
- heapsize = n;
- //numery dzieci
- l=2*korzen+1;
- p=2*korzen+2;
- //najwiekszy element - zamiana
- if (l<=n && tab[l]>tab[korzen]) najwiekszy = l;
- else najwiekszy = korzen;
- if (p<=n && tab[p]>tab[najwiekszy]) najwiekszy = p;
- //zamiana
- if(najwiekszy!= korzen){
- temp=tab[korzen];
- tab[korzen]=tab[najwiekszy];
- tab[najwiekszy]=temp;
- Kopcowanie(tab, n, najwiekszy);
- }
- }
- //BUDOWANIE KOPCA.....................................
- void Budowanie(int tab[], int n){
- int heapsize;
- int wielkosc;
- int i;
- wielkosc=n;
- heapsize=n/2;
- printf("\n heapsize: %d\n" , heapsize);
- for(i=(heapsize-1); i>=0; i--){
- Kopcowanie(tab,n,i);
- Wyswietl(tab,n);
- }
- }
- //SORTOWANIE KOPCA....................................
- void Sortowanie(int tab[], int n){
- int i;
- int temp;
- n--;
- for(i=n; i>0;i--){
- temp=tab[0];
- tab[0]=tab[i];
- tab[i]=temp;
- n--;
- Kopcowanie(tab,n,0);
- }
- }
- void wczytaj_plik()
- {
- int i=0;
- FILE *in; char bufor[512];
- in = fopen("wej.txt", "rt");
- while (feof(in)==0)
- {
- fscanf(in, "%i\n" ,&tab[i]);
- i++;
- }
- fclose(in);
- }
- //////////////////////////////////////////////////////
- int main(){
- int n=10;
- wczytaj_plik();
- printf("Przed:\n");
- Wyswietl(tab,n);
- Budowanie (tab,n);
- printf("\nPo:\n");
- Wyswietl(tab,n);
- Sortowanie(tab,n);
- Wyswietl(tab,n);
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement