#Logarithmic Insertion class PriorityQueue: def __init__(self): self._items = [] def is_empty(self): return not bool(self._items) def enqueue(self, item): if self.is_empty(): self._items.append(item) return #Model the binary search, but for insertion right=len(self._items)-1 left=0 while left<=right: index = (left+right)//2 if self._items[index] > item: left=index+1 else: right=index-1 self._items.insert(left,item) def dequeue(self): return self._items.pop() def size(self): return len(self._items)