Python UnbounLocalError:赋值前引用的局部变量“xxx”

时间:2013-07-13 08:46:49

标签: python variables

它是python中的合并排序算法

def MERGE_SORT(A, p, r):
    if p < r:
        q = int((p+r)/2)
    MERGE_SORT(A, p, q)
    MERGE_SORT(A, q+1, r)
    MERGE(A, p, q, r)

def MERGE(A, p, q, r):
    n1 = q-p+1
    n2 = r-q
    L = []
    R = []
    for i in range(0, n1, 1):
        L[i] = A[p+i]
    for j in range(0, n2, 1):
        R[j] = A[q+j+1]
    L[n1]=float("inf")
    R[n2]=float("inf")
    i = 0 
    j = 0
    for k in range(p, r+1, 1):
        if L[i] < R[j] and L[i]==R[j]:
            A[k] = L[i]
            i = i + 1
        else:
            A[k] = R[j]
            j = j + 1
    return A

1 个答案:

答案 0 :(得分:2)

def MERGE_SORT(A, p, r):
    if p < r:
        q = int((p+r)/2)
    MERGE_SORT(A, p, q)

如果p < rFalse,则不会定义q,因此您将在以下行中收到未绑定的本地错误。您需要在所有情况下定义q