簡體   English   中英

Python 降序選擇排序

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM