(USC CSCI 303 Домашна работа 4) Задача 7 (6.5-7):
Операцията
Heap-Delete(A, i)
изтрива елемента във възелi
от купчинаA
. Дайте имплементация наHeap-Delete
, която се изпълнява за O(lg n) време за n-елемент max-heap.
ето псевдо кода и описанието на референтното решение:
Heap-Delete(A, i)
A[i] ↔ A[length(A)]
length(A) ← length(A) - 1
Heapify(A, i)
Алгоритъмът изтрива елемента във възел
i
и го заменя с последния елемент. След това алгоритъмът изпълняваHeapify
от възелаi
.
не е ли по-добре, ако "↔" беше "←" вместо това? или това наистина ли е необходимо?
Получих това от http://www-scf.usc.edu/~csci303/cs303hw4solutions.pdf (Страница 4)