[英]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.