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
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()
def test_min_heap_has_min_at_top(self): minHeap = MinHeap() minHeap.push(10) minHeap.push(1) self.assertEqual(minHeap.peek(), 1)