Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdlib>
- #include<ctime>
- //kopcowe
- using namespace std;
- void wstaw(int tab[],int n) //funkcja zape³niaj¹ca tablicê
- {
- for(int i=0; i<n; i++)
- tab[i]=rand()%10;
- }
- void drukuj(int tab[],int n)
- {
- for(int i =0; i<n; i++)
- cout<<tab[i]<<" ";
- cout<<endl;
- } //funkcja do wyœwietlenia tablicy
- void zanurzanie(int i, int kolejka[], int rozmiarKolejki)
- {
- int l=2*i+1;
- int r=2*i+2;
- int wiekszy = i;
- if(l<rozmiarKolejki&&kolejka[l]>kolejka[wiekszy])//l<N-1
- wiekszy=l;
- if(r<rozmiarKolejki&&kolejka[r]>kolejka[wiekszy])//N-1
- wiekszy=r;
- if(wiekszy!=i)
- {
- swap(kolejka[wiekszy],kolejka[i]);
- zanurzanie(wiekszy,kolejka,rozmiarKolejki);
- }
- }
- void utworzKopiec(int tab[],int n)
- {
- for(int i =n/2; i>=0; i--)
- zanurzanie(i,tab,n);
- }
- void sortuj(int tab[], int n)
- {
- utworzKopiec(tab,n);
- for(int i = n; i>=1; i--)
- {
- swap(tab[0],tab[n-1]);
- --n;
- zanurzanie(0,tab,n);
- }
- }
- int main(int argc, char *argv[])
- {
- srand(time(NULL));
- const int N=10;
- int tab[N];
- wstaw(tab,N);
- drukuj(tab,N);
- sortuj(tab,N);
- drukuj(tab,N);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment