Shell排序显示“列表索引超出范围”,我无法理解

2024-09-28 05:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个shell排序,它显示了list index out of range,但我没有发现问题

def shellSort(arr):
    #choice the proper h to start
    N=len(arr)
    h=1    
    while h<N//3:
        h=h*3+1

    while h >0:
        for i in (h,len(arr)):
            key=arr[i]
            j=i-h
            while arr[j]>key and j>=0:
                arr[j+h]=arr[j]
                j-=h
            arr[j+h]=key
        h=h//3

#start sorting
arr=[15,5,9,8,17,25,1,63,2,45,62,4,12,8]
shellSort(arr)
print(arr)

Tags: ofkeyindexlen排序defrangeshell

热门问题