1

私が理解していない選択ソートアルゴリズムの一部があります。コードの後半 (temp変数が使用されている場所) では、なぜL[i]L[minIndx]に値が割り当てられているのですか? それらの値自体ではないのですか? 変数だけに値を割り当てることはできませんか?

def selSort(L):
    for i in range(len(L) - 1):
        minIndx = i
        minVal = L[i]
        j = i+1
        while j < len(L):
            if minVal > L[j]:
                minIndx = j
                minVal = L[j]
            j += 1
    # aren’t L[i] and L[minIndx] values? How can they be assigned to new values?
        if minIndx != i:
            temp = L[i]
            L[i] = L[minIndx]
            L[minIndx] = temp
4

2 に答える 2

1

Lは、多数のインデックス付き要素を含む変数である配列です。各要素は、新しい値を割り当てることができる別の変数のようなものです。

したがってL[i]、 とL[minIndx]は両方とも、新しい値を割り当てることができる配列要素です。これは、要素を移動して並べ替えるためにここで行われていることです。

于 2012-11-04T12:45:02.100 に答える
1

L[0]たとえば、値または参照を参照します...配列がある場合...L=[10,20,30]値をL[0]参照し、10実行L[0]すると結果は参照されたインデックスの値になります-...10実行するとL[0] = 100...インデックスのこの値0はに変更され100ます。は変数ではなく定数値な10 = 100のでできませんが、配列内の場所を参照しているのでできます。10L[0] = 100L[0]

于 2012-11-04T12:45:48.337 に答える