Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void kopiec_dol(int* tablica, int rozmiar, int heap)
- {
- int largest;
- int l = 2 * rozmiar + 1;
- int r = 2 * rozmiar + 2;
- if (l<heap && tablica[l]>tablica[rozmiar])
- {
- largest = l;
- }
- else
- {
- largest = rozmiar;
- }
- if (r<heap && tablica[r]>tablica[largest])
- {
- largest = r;
- }
- if (largest != rozmiar)
- {
- std::swap(tablica[rozmiar], tablica[largest]);
- kopiec_dol(tablica, largest, heap);
- }
- }
- void kopiec_buduj(int*tablica, int rozmiar, int &heap)
- {
- heap = rozmiar;
- for (int i = rozmiar / 2; i >= 0; i--)
- {
- kopiec_dol(tablica, i, heap);
- }
- }
- void sortowanie_przez_kopcowanie(int* tablica, int rozmiar)
- {
- int heap = rozmiar;
- kopiec_buduj(tablica, rozmiar, heap);
- for (int i = rozmiar - 1; i >= 1; i--)
- {
- std::swap(tablica[0], tablica[i]);
- heap = heap - 1;
- kopiec_dol(tablica, 0, heap);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement