Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void budujKopiec(int *tab, int n);
- void rysujKopiec(int *tab, int n);
- void heapSort(int *tab, int n);
- int main()
- {
- int n=5;
- int *tab=new int[n];
- tab[1]=5;
- tab[2]=1;
- tab[3]=8;
- tab[4]=3;
- tab[5]=7;
- heapSort(tab,n);
- return 0;
- }
- void budujKopiec(int *tab, int n){
- int i,j,k,x;
- for(i = 2; i <= n; i++){
- j = i;
- k = i / 2;
- x = tab[i];
- while((tab[k] < x)){
- tab[j] = tab[k];
- j = k;
- k = j / 2;
- }
- tab[j] = x;
- }
- }
- void rysujKopiec(int *tab, int n){
- for(int i = 1; i <= n; i++){
- cout<<tab[i]<<" ";
- }
- cout<<endl;
- }
- void heapSort(int *tab, int n){
- budujKopiec(tab,n);
- rysujKopiec(tab,n);
- swap(tab[1],tab[n]);
- //rysujKopiec(tab,--n);
- int i=1;
- int l=i+1;
- int p=i+2;
- if(tab[l]>tab[p] && tab[l]>tab[i]) && l<=n{
- swap(tab[i],tab[i+1]);
- }
- else if(tab[p]>tab[l] && tab[p]>tab[i] && p<=n){
- swap(tab[i],tab[i+2]);
- }
- rysujKopiec(tab,--n);
- }
- /*
- 1. Swtworzyc kopiec
- 2. Przedstawic /odczepic max
- 3. Ponownie stworzyc kopiec
- 2 i 3 w petli, az do konca
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement