Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <iostream>
  2. //wersja że korzeń=max
  3.  
  4. using namespace std;
  5.  
  6. class kopiec{
  7. private:
  8. int n;
  9. zamien(int H[], int, int );
  10. public:
  11. void zatapianie(int H[], int , int);
  12. void wynurzanie (int H[], int, int);
  13. void wstaw ( int H[],int );
  14.  
  15. };
  16.  
  17. int wiekszy;
  18. int ojciec;
  19.  
  20. zamien(int H[], int x, int y){
  21. int tmp = H[x];
  22. H[x] = H[y];
  23. H[y] = tmp;
  24. }
  25.  
  26. void zatapianie(int H[],int i, int n){
  27. int l = 2*i;
  28. int r = 2*i+1;
  29.  
  30. if(l < n && H[l] > H[i])
  31. wiekszy = l;
  32. else
  33. wiekszy = i;
  34.  
  35. if(r < n && H[r] > H[wiekszy])
  36. wiekszy = r;
  37.  
  38. if(wiekszy != i)
  39. {
  40. zamien(H, wiekszy, i);
  41. zatapianie ( H, wiekszy, n);
  42. }
  43. }
  44.  
  45. void wynurzanie(int H[], int i, int n){
  46. if(i > 0)
  47. ojciec=i/2;
  48. if(H[i] > H[ojciec])
  49. {
  50. zamien(H, i, ojciec);
  51. wynurzanie( H, ojciec, n);
  52. }
  53.  
  54. }
  55.  
  56. void print( int H[], int n){
  57. for( int i = 0; i < n; i++){
  58. cout<< H[i]<< " ";
  59. }
  60. cout << endl;
  61. }
  62.  
  63.  
  64. int main()
  65. {
  66. int n=16;
  67. int H[16] = {-1,1,8,7,4,3,2,5,2,1,1,-1,1,-1,4,-1};
  68. print(H, n);
  69. zatapianie(H, 1, n);
  70. cout << endl;
  71. print(H, n);
  72.  
  73. cout << "Hello world!" << endl;
  74. return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement