簡體   English   中英

合並排序中的列表索引超出范圍錯誤 function

[英]List index out of range error in merge sort function

我編寫了合並排序程序,在復制 arrays 時,在L[i] = A[p+i]處為新數組分配值時出現列表索引超出范圍的錯誤

A = [1,2,6,8,3,4,5,7]
# p = 0,r = 7 ,q = 3
def Merge(A,p,q,r):
    n1 = q - p
    n2 = r - q
    L = []
    R = []
    for i in range(n1):
        L[i] = A[p+i]
    for i in range(n2):
        R[i] = A[q+i]
    i = 0
    j = 0
    Array = []
    for x in range(p,r):
        if L[i] < R[j]:
            Array[x] = L[i]
            i = i +1
        else:
            Array[x] = R[j]
            j = j +1
Merge(A,0,3,7)

您的 L 和 R arrays 為空,您嘗試在 for 循環中訪問 L[i] 和 R[i]。 這會導致索引錯誤。 嘗試先初始化數組以訪問其索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM