Sorting algorithms/Heapsort: Difference between revisions

Content added Content deleted
(added FunL)
(added FunL)
Line 923: Line 923:
while end > 0
while end > 0
a(end), a(0) = a(0), a(end)
a(end), a(0) = a(0), a(end)
end--
siftDown( a, 0, --end )
siftDown( a, 0, end )


def heapify( a ) =
def heapify( a ) =
start = (a.length() - 2)\2
for i <- (a.length() - 2)\2..0 by -1
siftDown( a, i, a.length() - 1 )

while start >= 0
siftDown( a, start, a.length() - 1 )
start--


def siftDown( a, start, end ) =
def siftDown( a, start, end ) =