Language: EN FI

Tehtävät > Keon muodostuminen

Nämä tehtävät ovat esimerkkjä ByTheMark-palvelusta löytyvästä oppimateriaalista. Ne on tarkoitettu itseopiskeluun. Jos haluat lisää tehtäviä tai seurata omaa edistymistäsi, luo ByTheMark Personal-demotunnus. ByTheMark Personal on maksuton yksityisille henkilöille tarkoitettu palvelu tietorakenteiden ja algoritmien opiskeluun.

Muodosta oheisesta taulukosta binäärikeko lineaarisessa ajassa toimivalla BuildHeap-algoritmilla (joka tunnetaan myös nimillä Fixheap ja Bottom-Up Heap Construction). Kekoehto on "isä pienempi kuin lapsensa".

Algorithm 1 Build-Min-Heap(A)


for iheap-size[A]/2 - 1 downto 0 do
Min-Heapify (A, i)
end for


Algorithm 2 Min-Heapify(A, i)


lLeft-child-index(i)
rRight-child-index(i)
if l < heap-size[A] and A[l] < A[i] then
smallestl
else
smallesti
end if
if r < heap-size[A] and A[r] < A[smallest] then
smallestr
end if
if smallest ≠ i then
Swap(A[i],A[smallest])
Min-Heapify(A, smallest)
end if

  Last modified Tue Mar 01 20:54:04 EET 2011