Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 冒泡排序问题,第一个值排序不正确_Python_Sorting_Bubble Sort - Fatal编程技术网

Python 冒泡排序问题,第一个值排序不正确

Python 冒泡排序问题,第一个值排序不正确,python,sorting,bubble-sort,Python,Sorting,Bubble Sort,我已经为一个简单数组设置了冒泡排序,但是有一个奇怪的问题,我不知道第一个值在输出中的什么位置没有正确排序,并且由于某种原因,零没有正确排序 此外,赋值只调用对整数列表进行排序,但是当我将字符串值插入列表时,它会创建一个错误,因为>运算符只能比较整数。出于好奇,是否有一个简单的解决方案,或者需要一个更健壮的方法?谢谢 我可以通过在函数内但在while循环外添加另一个for循环来“修复”第一个数字的排序问题,但这似乎是一个覆盖某种逻辑错误的低效补丁,仍然保留了零,有人能解释为什么会发生这种情况吗 Y

我已经为一个简单数组设置了冒泡排序,但是有一个奇怪的问题,我不知道第一个值在输出中的什么位置没有正确排序,并且由于某种原因,零没有正确排序

此外,赋值只调用对整数列表进行排序,但是当我将字符串值插入列表时,它会创建一个错误,因为>运算符只能比较整数。出于好奇,是否有一个简单的解决方案,或者需要一个更健壮的方法?谢谢

我可以通过在函数内但在while循环外添加另一个for循环来“修复”第一个数字的排序问题,但这似乎是一个覆盖某种逻辑错误的低效补丁,仍然保留了零,有人能解释为什么会发生这种情况吗

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,您的代码将正常运行

谢谢,这太尴尬了!