冒泡排序从最高到最低 (Python)

Bubble Sort Highest to Lowest (Python)

嗨,有人可以帮助我吗,而不是从最低到最高排序,而是从最高到最低排序。

def sort_list(to_short):
    for i in range(len(to_short)):
        for j in range(len(to_short) - 1):
            if to_short[j] < to_short[j + 1]:
                to_short[j], to_short[j + 1] = to_short[j + 1], to_short[j]

您需要更改 if 条件中的符号,这是您函数中具有两种方式(从最低到最高和从最高到最低)的代码:

def inplace_bubble_sort(to_sort, lower_first=True):
    for i in range(len(to_sort)):
        for j in range(len(to_sort) - 1):
            if lower_first:
                sort_condition = to_sort[j] > to_sort[j + 1]
            else:
                sort_condition = to_sort[j] < to_sort[j + 1]
            if sort_condition:
                to_sort[j], to_sort[j + 1] = to_sort[j + 1], to_sort[j]


a = [3, 4, 2, 31, 6, 1]
inplace_bubble_sort(a)
print(a)
inplace_bubble_sort(a, lower_first=False)
print(a)

result: 
first print -> [1, 2, 3, 4, 6, 31] 
second print -> [31, 6, 4, 3, 2, 1]