堆排序,关于涉及范围的方法的实现
Heap sort , about the implementation of method involving range
range(n, -1, -1) 中的 -1, -1 是做什么用的,我在各种排序算法中遇到过相同的模式和实现,这让我很困惑。任何答案将不胜感激!提前谢谢你 - NewCoder
-示例代码-
def build_max_heap(A):
n = len(A)
for i in range(n, -1,-1):
max_heapify(A,n, i)
for i in range(n-1,0,-1):
A[0],A[i]=A[i],A[0]
max_heapify(A,i,0)
A=[33,35,42,10,7,8,14,19,48]
build_max_heap(A)
打印(A)
range
的签名是 range(start, stop[, step])
。
range(n, -1, -1)
中的 range
函数接受 3 个参数:
'n'作为范围对象的起始索引
第一个'-1'作为范围对象的结束索引
第二个'-1'作为范围对象的移动步骤
所以range(n, -1, -1)
基本意思是构造一个[n, n-1, ..., 1, 0]的序列。
更多可以参考Python Doc
range(n, -1, -1) 中的 -1, -1 是做什么用的,我在各种排序算法中遇到过相同的模式和实现,这让我很困惑。任何答案将不胜感激!提前谢谢你 - NewCoder
-示例代码-
def build_max_heap(A):
n = len(A)
for i in range(n, -1,-1):
max_heapify(A,n, i)
for i in range(n-1,0,-1):
A[0],A[i]=A[i],A[0]
max_heapify(A,i,0)
A=[33,35,42,10,7,8,14,19,48]
build_max_heap(A)
打印(A)
range
的签名是 range(start, stop[, step])
。
range(n, -1, -1)
中的 range
函数接受 3 个参数:
'n'作为范围对象的起始索引
第一个'-1'作为范围对象的结束索引
第二个'-1'作为范围对象的移动步骤
所以range(n, -1, -1)
基本意思是构造一个[n, n-1, ..., 1, 0]的序列。
更多可以参考Python Doc