这是我的代码
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)
Run Code Online (Sandbox Code Playgroud)
您的代码不应该运行.你应该得到local variable 'count' referenced before assignment.
要解决此问题,请将以下内容添加到顶部selectionSort(data):
global count
Run Code Online (Sandbox Code Playgroud)
更好的方法是废弃全局变量并返回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)
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的是,你在计算除了比较之外的其他东西.我把它作为读者的练习.