这是我的代码
count = 0
def selectionSort(data):
for index in range(len(data)):
min = index
count += 1
# Find the index'th smallest element
for scan in range(index + 1, len(data)):
if (data[scan] < data[min]):
min = scan
if min != index: # swap the elements
data[index], data[min] = data[min], data[index]
return data
data = selectionSort([3,4,5,2,6])
print(count, data)
答案 0 :(得分:5)
您的代码不应该运行。你应该得到local variable 'count' referenced before assignment
。
要解决此问题,请将以下内容添加到selectionSort(data)
的顶部:
global count
更好的方法是废弃全局变量并将count
与排序数据一起返回:
def selectionSort(data):
count = 0
for index in range(len(data)):
min = index
count += 1
# Find the index'th smallest element
for scan in range(index + 1, len(data)):
if (data[scan] < data[min]):
min = scan
if min != index: # swap the elements
data[index], data[min] = data[min], data[index]
return count, data
count, data = selectionSort([3,4,5,2,6])
print(count, data)
最后但并非最不重要的是,你在计算除了比较之外的东西。我把这作为读者练习。