Python 冒泡排序问题,第一个值排序不正确
我已经为一个简单数组设置了冒泡排序,但是有一个奇怪的问题,我不知道第一个值在输出中的什么位置没有正确排序,并且由于某种原因,零没有正确排序 此外,赋值只调用对整数列表进行排序,但是当我将字符串值插入列表时,它会创建一个错误,因为>运算符只能比较整数。出于好奇,是否有一个简单的解决方案,或者需要一个更健壮的方法?谢谢 我可以通过在函数内但在while循环外添加另一个for循环来“修复”第一个数字的排序问题,但这似乎是一个覆盖某种逻辑错误的低效补丁,仍然保留了零,有人能解释为什么会发生这种情况吗Python 冒泡排序问题,第一个值排序不正确,python,sorting,bubble-sort,Python,Sorting,Bubble Sort,我已经为一个简单数组设置了冒泡排序,但是有一个奇怪的问题,我不知道第一个值在输出中的什么位置没有正确排序,并且由于某种原因,零没有正确排序 此外,赋值只调用对整数列表进行排序,但是当我将字符串值插入列表时,它会创建一个错误,因为>运算符只能比较整数。出于好奇,是否有一个简单的解决方案,或者需要一个更健壮的方法?谢谢 我可以通过在函数内但在while循环外添加另一个for循环来“修复”第一个数字的排序问题,但这似乎是一个覆盖某种逻辑错误的低效补丁,仍然保留了零,有人能解释为什么会发生这种情况吗 Y
Y=[3,2,1,9,3,8,3,0,7]
def s_列表(C):
长度=长度(C)-1
有序=错误
虽然未订购:
有序=真
对于范围内的i(长度):
如果int(C[i])>int(C[i+1]):
排序=假
C[i],C[i+1]=C[i+1],C[i]
返回C
期望值:[0,1,2,3,3,3,7,8,9]
现实:[2,1,3,3,8,3,0,7,9]您最初将
顺序设置为False
,然后在while循环开始时设置为True
。这很好,但是在if语句中,您将sorted
设置为“False”。这是两个独立的变量。将sorted
更改为ordered
,它应该可以工作。或者您已将所有已排序更改为ordered,或者将所有已排序更改为sorted,您的代码将正常运行谢谢,这太尴尬了!