Documente Academic
Documente Profesional
Documente Cultură
Etapa 1 Etapa 2
Procedure insereazaAlTlea(a, n, t) Procedure heapSort(a, n)
begin begin
j←t // construiește maxheap-ul
heap ← false for t ← (n − 1)/2 downto 0 do
while ((2 ∗ j + 1 < n) and not heap) do insereazaAlTlea(a, n, t)
k←2∗j+1 // elimină
if ((k < n − 1) and (a[k] < a[k + 1])) then r←n−1
k←k+1 while (r > 0) do
if (a[j] < a[k]) then swap(a[0], a[r])
swap(a[j], a[k]) insereazaAlTlea(a, r, 0)
j←k r←r−1
else end
heap ← true
end
end
Sortare rapidă (quick sort)
Procedure partitioneaza(a, p, q, k) Procedure quickSort(a, p, q)
begin begin
x←a[p] while (p < q) do
i←p+1 partitioneaza(a, p, q, k)
j←q quickSort(a, p, k− 1)
while (i < = j) do quickSort(a, k + 1, q)
if (a [ i ] < = x) then end
i←i+1
if ( a [j ] > = x ) then
j←j−1
if (i < j) and (a [ i ] > x)
and (x > a [j ] ) then
swap ( a [ i ] , a [j])
i←i+1
j←j−1
k←i−1
a[p]←a[k]
a[k]←x
end