堆排序,关于涉及范围的方法的实现

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