[英]Python descending selection sort
我正在尝试提交学校作业。 他们正在使用这个令人讨厌的网站,该网站只接受非常特定格式的程序 output。 这只是一个按降序排列的选择排序,但他们希望看到排序中的每一步都打印出来。 该算法有效,但排序需要很多步骤。 我不确定我可以进行哪些更改以提高效率,或者我不确定它是否是我放置打印语句的地方。 任何帮助,将不胜感激。
array = [20,10,30,40]
for i in range(len(array)):
max_index = i
for j in range(i+1, len(array)):
if array[j] > array[max_index]:
max_index = j
print(array)
array[i],array[max_index] = array[max_index],array[i]
print(array)
Output:
[20, 10, 30, 40]
[30, 10, 20, 40]
[40, 10, 20, 30]
[40, 20, 10, 30]
[40, 30, 10, 20]
[40, 30, 20, 10]
Expected output:
40 10 30 20
40 30 10 20
40 30 20 10
交换不应在您的内部循环内。 您需要让整个内部循环完成才能找到max_index
的正确值。
for i in range(len(array)):
max_index = i
for j in range(i+1, len(array)):
if array[j] > array[max_index]:
max_index = j
print(array)
array[i],array[max_index] = array[max_index],array[i]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.