def heap_sort(my_list): sortlst = [] # create a list for sorted values heap = BinHeap() # create a heap heap.buildHeap(my_list) # build heap from an unsorted list while not heap.isEmpty(): # stop the loop when heap is empty sortlst.append( heap.delMin() ) # keep deleting the min value in the heap and reorganizing the heap and append the min value to sortlst return sortlst # return the sorted list
class PriorityQueue: def __init__(self): self._heap = BinHeap() def isEmpty(self): return self._heap.isEmpty() def enqueue(self, item): self._heap.insert(item) def dequeue(self): return self._heap.delMin() def size(self): return self._heap.size() def __str__(self): return str(self._heap)