我试图为选择排序创建一个函数,但在尝试使用枚举时遇到了一些问题。你知道吗
希望有人能帮我理解为什么最上面的函数可以工作,但是最下面的函数不行。谢谢!你知道吗
工作:
def selection_sort(arr):
for x in range(len(arr)):
current_min = [x,arr[x]]
for i in range(x,len(arr)):
if arr[i] < current_min[1]:
current_min = [i,arr[i]]
temp = arr[x]
arr[x] = current_min[1]
arr[current_min[0]] = temp
print arr
不工作:
def selection_sort(arr):
for x in range(len(arr)):
current_min = [x,arr[x]]
for i, v in enumerate(arr, x):
if v < current_min[1]:
current_min = [i,v]
temp = arr[x]
arr[x] = current_min[1]
arr[current_min[0]] = temp
print arr
谢谢!你知道吗
从索引x开始一直到len(arr)-1。假设x是2,数组的长度是5。有效地,你将访问元素
但是
将遍历所有元素,但索引将从x开始,因此
要解决这个问题,您需要从位置x开始遍历数组,因此将上面的行改为
相关问题 更多 >
编程相关推荐