HELP!我正在努力编写一个程序,它将从一长串输入值中提取最大的K值。单个参数是一个整数,指定从输入数据中提取的值的数量。 调用此值K.然后,您的程序将从标准读取任意数量的输入数据项 输入ubtil文件结束。一旦达到文件结束,您的程序将打印出来 从输入数据元素捕获的最大K值。 请记住,您的程序可能会获得非常大量的数据,因此不实用 让程序尝试保留所有输入数据,直到达到文件结尾。
class MinHeap:
def _init_(self):
self.list = [ ]
def swap(self, i, j):
temp = self.list[i]
self.list[i] = self.list[j]
self.list[j] = temp
def siftUp(self, pos):
i = pos;
while i > 0:
parent = (i - 1) // 2
if self.list[parent] > self.list[i]:
self.swap(parent, i)
else:
break
i = parent
return self
def siftDown(self, lo, hi):
i = lo
child = 2*i + 1
while child <= hi:
rchild = child + 1
if rchild <= hi and self.list[child] > self.list[rchild]:
child = rchild
if self.list[i] > self.list[child]:
self.swap(i, child)
else:
break
i = child
child = 2*i +1
return self
def getMin(self):
if len(self.list) <= 0:
return None
else:
return self.list[0]
def removeMin(self):
if len(self.list) <= 0:
return None
else:
self.swap(0, -1)