【发布时间】:2021-05-03 16:38:13
【问题描述】:
编码和算法的新手。尝试最简单的一种,冒泡排序。但似乎最后一个数字没有被排序?实在想不通为什么。
原始列表如下所示 - list = [4, 5, 3, 10, 17, 6, 2, 22, 76, 99, 18, 7]
但我的输出看起来像这样 - [99, 2, 3, 4, 5, 6, 7, 10, 17, 18, 22, 76]
由于某种原因,99 没有被换到后面,我无法确定原因。
list = [4, 5, 3, 10, 17, 6, 2, 22, 76, 99, 18, 7]
def bblSort(list):
for i in range(len(list)):
print(list[i])
for j in range(len(list) - 1):
if list[i] <list[j+1]:
list[i], list[j+1] = list[j+1], list[i]
print(list)
【问题讨论】:
-
这不是冒泡排序——冒泡排序只比较相邻项。
-
更改
range(len(list) - 1)- >range(len(list)-i - 1)、if list[i] <list[j+1]:到if list[i] >list[j+1]:和list[i], list[j+1] = list[j+1], list[i]到list[j], list[j+1] = list[j+1], list[j]
标签: python python-3.x algorithm sorting