【发布时间】:2019-08-25 17:27:18
【问题描述】:
我已经为一个简单的数组设置了冒泡排序,但有一个奇怪的问题,我不明白输出中第一个值在哪里没有正确排序,并且由于某种原因零没有正确排序。
此外,赋值只要求对整数列表进行排序,但是当我将字符串值插入列表时会产生错误,因为 > 运算符只能比较整数。出于好奇,是否有一个简单的解决方法或者需要更强大的方法?谢谢!
我可以通过在函数内但在 while 循环外添加另一个 for 循环来“修复”第一个数字的排序问题,但这似乎是一个低效的补丁来覆盖某种逻辑错误并且仍然留下零的问题,有人能解释一下为什么会这样吗?
Y=[3, 2, 1, 9, 3, 8, 3, 0, 7]
def s_list( C ):
length = len(C) - 1
ordered = False
while not ordered:
ordered = True
for i in range(length):
if int(C[i]) > int(C[i+1]):
sorted = False
C[i], C[i+1] = C[i+1], C[i]
return C
期望:[0, 1, 2, 3, 3, 3, 7, 8, 9] 现实:[2, 1, 3, 3, 8, 3, 0, 7, 9]
【问题讨论】:
标签: python sorting bubble-sort