对于我的生活,我不明白为什么会出现这个错误:
UnboundLocalError: local variable 'unsorted' referenced before assignment (while len(unsorted) > 0)
对于这段代码,我也知道它不是选择排序的最佳实现:
def selection_sort(arr):
unsorted = arr[:]
sorted_arr = []
while len(unsorted) > 0:
lowest = arr[0]
lowest_index = 0
for i in range(len(unsorted)):
if arr[i] < lowest:
lowest = arr[i]
lowest_index = i
sorted_arr.append(lowest)
del(unsorted, lowest_index)
return sorted_arr
答案 0 :(得分:7)
您收到此错误的原因是:
del(unsorted, lowest_index)
删除两个变量unsorted
和lowest_index
,然后在下一个循环回合中,您尝试再次使用它们。
答案 1 :(得分:0)
del (unsorted, lowest_index)
删除unsorted和lowest_index。如果您尝试删除未排序的元素lowest_index do:
del unsorted[lowest_index]