【发布时间】:2020-12-19 23:59:46
【问题描述】:
所以我决定在 Python 中创建一个冒泡算法。问题是它适用于某些数字,但不适用于其他数字。谁能帮忙:
def sort(number):
to_sort = list(str(number))
sorted_list = sorted(to_sort)
print(sorted_list)
i = 0
while True:
if to_sort == sorted_list:
print(f"Sorted {number} to {''.join(to_sort)}" )
break
first_index = to_sort[i]
try:
second_index = to_sort[i+1]
except IndexError:
i = 0
if first_index < second_index:
i += 1
print(to_sort)
continue
elif first_index > second_index:
print(f"switching {to_sort[i+1]} to {first_index}")
to_sort[i+1] = first_index
print(to_sort)
print(f"Switching {to_sort[i]} to {second_index}")
to_sort[i] = second_index
print(to_sort)
i += 1
continue
sort(49304)
它适用于 51428 但不适用于 49304。有人知道为什么吗?
【问题讨论】:
-
我认为,当您捕获异常时,您应该重新启动循环。你需要 i = 0;继续。否则你的“索引”变量不会被重置。
-
您说“它适用于 51428 但不适用于 49304”。你在 49304 上试一试,结果如何?
标签: python algorithm bubble-sort