我写了以下冒泡排序,为什么它不能输出正确的结果?
number = [8,6,4,5,7]
while x == True:
for i in range(0,len(number)-1):
if number[i]>number[i+1]:
x == True
number[i],number[i+1]=number[i+1],number[i]
x = False
print(number)
答案 0 :(得分:0)
x = False
循环的末尾设置while
,因此该循环只能运行一次,将其设置在循环的第一行。x == True
而不是x = True
,因此您的循环仅在x
保持False
的情况下运行一次。x = True
,因此它甚至都不会进入循环。更改所有这些操作将使您的代码正常工作
>>> x = True
>>> number = [8,6,4,5,7]
>>> while x == True:
... x = False
... for i in range(0,len(number)-1):
... if number[i]>number[i+1]:
... x = True
... number[i],number[i+1]=number[i+1],number[i]
...
>>> print(number)
[4, 5, 6, 7, 8]