这是我的min-heap代码。这是我家庭作业的一部分:
def heapify(i):
global end,a
l=2*i+1
if l>end:
return None
r=2*i+2
minarg=i
if a[i]>a[l]:
minarg=l
if r<=end:
if a[minarg]>a[r]: minarg=r
if a[i]==a[minarg]:
return None
else:
a[i],a[minarg]=a[minarg], a[i]
heapify(minarg)
def buildHeap(start):
global end,a
if start*2+1>end:
return None
buildHeap(start*2+1)
buildHeap(start*2+2)
heapify(start)
它应该是工作,但我得到的时间限制超过了大型测试用例。我做错什么了吗?你知道吗
Python中的函数调用占用时间,递归占用空间。你知道吗
为了节省递归的时间,人们通常把它转换成一个循环。这通常需要使用专门的日期“内存管理”来处理安全空间。你已经这样做了(和。。。嗯哼。。。全局变量)。你知道吗
如果那是你的家庭作业,那就去做吧,这是可行的,但不是微不足道的。你知道吗
相关问题 更多 >
编程相关推荐