Esempio n. 1
0
def heapsort(a):
    a = list(a)
    heap = MinHeap()
    heap.heapify(a)
    a_sorted = []
    while heap.peek():
        a_sorted.append(heap.extract_min())

    return a_sorted
Esempio n. 2
0
def find_k_largest(a, k):
    h = MinHeap()
    for i in range(len(a)):
        if i < k:
            h.push(a[i])
        elif a[i] > h.peek():
            h.pop()
            h.push(a[i])

    return h.getItems()
Esempio n. 3
0
 def test_min_heap_has_min_at_top(self):
     minHeap = MinHeap()
     minHeap.push(10)
     minHeap.push(1)
     self.assertEqual(minHeap.peek(), 1)