Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. void kopiec_dol(int* tablica, int rozmiar, int heap)
  2. {
  3. int largest;
  4. int l = 2 * rozmiar + 1;
  5. int r = 2 * rozmiar + 2;
  6. if (l<heap && tablica[l]>tablica[rozmiar])
  7. {
  8. largest = l;
  9. }
  10. else
  11. {
  12. largest = rozmiar;
  13. }
  14. if (r<heap && tablica[r]>tablica[largest])
  15. {
  16. largest = r;
  17. }
  18. if (largest != rozmiar)
  19. {
  20. std::swap(tablica[rozmiar], tablica[largest]);
  21. kopiec_dol(tablica, largest, heap);
  22. }
  23. }
  24.  
  25. void kopiec_buduj(int*tablica, int rozmiar, int &heap)
  26. {
  27. heap = rozmiar;
  28. for (int i = rozmiar / 2; i >= 0; i--)
  29. {
  30. kopiec_dol(tablica, i, heap);
  31. }
  32. }
  33. void sortowanie_przez_kopcowanie(int* tablica, int rozmiar)
  34. {
  35. int heap = rozmiar;
  36. kopiec_buduj(tablica, rozmiar, heap);
  37. for (int i = rozmiar - 1; i >= 1; i--)
  38. {
  39. std::swap(tablica[0], tablica[i]);
  40. heap = heap - 1;
  41. kopiec_dol(tablica, 0, heap);
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement