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
Exemplo n.º 2
0
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)