Dúvida de Heap (Kruskal)
Estou implementando o algoritmo de Kruskal, e para isso preciso montar um heap.
Alguém tem aí o algoritmo de montar o heap?
Alguém tem aí o algoritmo de montar o heap?
Gabriela
Curtidas 0
Respostas
Ertai
21/06/2004
HeapSort????
para ordenação????
para ordenação????
GOSTEI 0
Beppe
21/06/2004
Pode ser assim:
Mas vc vai precisar tb a rotina que remove ítems do min-heap.
var MeuMinHeap: array[1..10] of Integer; NumItems: Integer; procedure Troca(var X, Y: Integer); var Temp: Integer; begin Temp := X; X := Y; Y := Temp; end; procedure Insere(Item: Integer); var I: Integer; begin Assert(NumItems < Length(MeuMinHeap)); Inc(NumItems); MeuMinHeap[NumItems] := Item; I := NumItems; while (I > 1) and (MeuMinHeap[I] < MeuMinHeap[I div 2]) do begin Troca(MeuMinHeap[I], MeuMinHeap[I div 2]); I := I div 2; end; end;
Mas vc vai precisar tb a rotina que remove ítems do min-heap.
GOSTEI 0