begin H[i]:=H[i


begin H[i]:=H[i div 2]; i:=i div 2; end; {while} H[i]:=x; code:=0; end; {if} end; {insert} function delete_min(var H: array [0..n] of integer; var Num:integer; var code:integer):integer; var i,child:integer; last_el:element; stop:boolean; begin if Num=0 then code:=2 else begin delete_min:=H[1]; last_el:=H[Num]; Num:=Num-1; i:=1; stop:=False; while (2*i<=Num) and (not stop) do begin child:=2*i; if child < Num then if H[child+1] < H[child] then child:=child+1; if last_el > H[child] then begin H[i]:=H[child]; i:=child; end else stop:=True; end; {while} H[i]:=last_el; code:=0; end; {if} end; {delete_min} Трудоемкость операции добавления определяется количеством выполнения цикла while и не превышает количества уровней кучи, которое равно Log2 (Num). <<< Предыдущий урок Следующий урок >>> | Новости | Регистрация | Курсы | Карта сайта | Контактная информация | Курс
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz