Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sortowanie stogowe
- void update(1, p) {
- // przywrocenie stogu w poddrzewie o korzeniu 1; kopiec nie wychodzi poza indeks p w tablicy
- v=1
- while true {
- left = 2 * v;
- right = left + 1
- if (left > p) return;
- m = left; // indeks wiekszzego z potomkow
- if (left < p) {
- if (key_left < key_right) (*)
- m = right;
- }
- if (key_m <= key_v) break; // (*) dalej warunek stogu juz jest zachowany
- x = Rec_v;
- Rec_v = Rec_m;
- Rec_m = x;
- v = m;
- }
- ...
- }
- void HeapSort() {
- zbudowac kopiec w tablicy zaczynajac od indeksu j = ntabsize / 2 do 0 włącznie
- poprzez wywolanie Update(j, ntabsize - 1);
- dla indeksow j od ntabsize-1 do 0 (bez)
- zamienic j-ty element z 0-wym
- update(0. j-1); // przywrocic warunek stogu
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement