我正在尝试执行选择排序算法,但是我无法弄清楚我缺少什么。下面给出两个代码代码1,我尝试使用索引访问值,它可以正常工作
代码1:
arr = [20,11,64,28,80,64,61,58,23,50,55,21,34,76,39,29,15,66,13,91,74,51]
for i in range(len(arr)):
min_ele = i
for j in range(i,len(arr)):
if arr[min_ele] > arr[j]:
min_ele = j
arr[i],arr[min_ele] = arr[min_ele],arr[i]
print(arr)
但是代码2,我想我尝试的基本上是相同的。我正在比较值,然后采用它们的索引并彼此交换,但是不知何故数组根本没有变化,我无法弄清楚我缺少了什么
代码2:
arr = [20,11,64,28,80,64,61,58,23,50,55,21,34,76,39,29,15,66,13,91,74,51]
for x in arr:
min_ele = x
for xx in arr[arr.index(x):len(arr)]:
if min_ele > xx:
min_ele = xx
arr[arr.index(x)],arr[arr.index(min_ele)] = arr[arr.index(min_ele)],arr[arr.index(x)]
print(arr)
index_1 = arr.index(x)
index_2 = arr.index(min_ele)
arr[index_1],arr[index_2] = arr[index_2],arr[index_1]
但是以某种方式有效