我不理解选择排序算法的一部分。在代码的后半部分(使用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
答案 0 :(得分:1)
L
是一个数组,它是一个包含许多索引元素的变量,每个元素都像另一个可以赋值的变量。
所以L[i]
和L[minIndx]
都是可以分配新值的数组元素,这就是在这里要移动元素以对它们进行排序。
答案 1 :(得分:1)
L[0]
例如引用一个值或引用...如果您有一个数组L=[10,20,30]
... L[0]
引用值10
,那么L[0]
引用10
1}}结果将是引用索引的值 - L[0] = 100
...当您执行0
时...索引100
的此值将更改为{{1} }。您无法10 = 100
,因为10
是常量值,而不是变量,但您可以执行L[0] = 100
因为L[0]
引用数组中的某个位置。