繁体   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