冒泡排序从最高到最低 (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]
嗨,有人可以帮助我吗,而不是从最低到最高排序,而是从最高到最低排序。
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]