Ruby 힙정렬 구현

1 개요[ | ]

Ruby 힙정렬 구현
루비 힙정렬 구현
Ruby
Copy
def heap_sort(a)
    def heapify(a, size, i)
    	largest = i
    	l = 2*i + 1
    	r = 2*i + 2
    	if l<size and a[i]<a[l]; largest=l; end
    	if r<size and a[largest]<a[r]; largest=r; end
    	if largest != i
    		a[i],a[largest] = a[largest],a[i]
    		heapify(a, size, largest)
    	end
    end
    for i in (a.size).downto(0); heapify(a, a.size, i); end
    for i in (a.size-1).downto(1)
    	a[i],a[0] = a[0],a[i]
    	heapify(a, i, 0)
    end
end
arr = [9,1,22,4,0,-1,1,22,100,10]
heap_sort(arr)
print arr
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]

2 같이 보기[ | ]