МЕНЮ:
Аналитик | Постановщик задач | Проектировщик | Программист | Программист БД
Инженер по тестированию | Тестировщик | Инженер по документированию
Инженер по внедрению | Инженер поддержки | Менеджер проекта | Менеджер подразделения
Менеджер по продажам | Менеджер по маркетингу | Администратор | Администратор БД
Литература | Контакты
\

Книга Жемчужены творчества программистов на IT БАЗАР

за исключением, быть может, интервала между узлом I и его "отцом". Поэтому мы вновь достигнем инварианта, присваивая I := Р.
Из вышеприведенных фрагментов формируется программа SiftUp, время работы которой пропорционально logN, так как пирамида имеет logN уровней.
procedure SiftUp(N)
pre Heap(l,N-l) и N > 0 /* На входе */
post Heapd.N)                       /* На выходе #/
I := N
loop
Л Инвариант: функция Неар(1,Ю истинна, за исключением,
возмохно, участка от I до его "отца" </
if I = 1 then break
Р :: I div 2
if XCP3 <= ХСП then break
SwaptXCP], ХСП)
I := P
Как и в гл. 4, строки pre (на входе) и post (на выходе) характеризуют эту процедуру: если условие pre имеет место перед вызовом процедуры, то условие post устанавливается после ее завершения.
Присваивание элементу, X [1] нового значения при условии, что массив X [1. . .N] является пирамидой, сохраняет истинность функции Heap (2, N); процедура SiftDown (сдвиг вниз) восстанавливает истинность функции Heap (1, N), сдвигая элемент X [1] вниз в массиве до тех пор, пока у него не окажется "сыновей" или пока он больше своих "сыно­вей". На следующем рисунке показан узел 02, который сдвигается вниз по пирамиде до тех пор, пока его значение не станет, наконец, меньше значения его единственного "сына" (узла 19):
15                                                     15
20 15
20 (02)
20 17
У \ У \
/ х у^К
у ^ г< х
29 23 17 22
29 23 17 22
29 23 П(Л 22
/ \ / \ /
/ \ /\ /
/\ / \ У^
35 40 26 51 19
35 40 26 51 19
35 40 26 51 19


Страница №190
*
Зайцев нет
© "IT БАЗАР", 2003. Все права защищены. Создание: © "z-group" студия веб-дизайна, 2003.
Также может поискать работу на прямую в следуйщих организациях:
IT БАЗАР