气泡排序不正确的排序列表

时间:2020-06-29 01:55:46

标签: python

我写了以下冒泡排序,为什么它不能输出正确的结果?

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)

1 个答案:

答案 0 :(得分:0)

  1. 您正在x = False循环的末尾设置while,因此该循环只能运行一次,将其设置在循环的第一行。
  2. 您使用x == True而不是x = True,因此您的循环仅在x保持False的情况下运行一次。
  3. 您无需在循环开始前设置x = True,因此它甚至都不会进入循环。
  4. 您的缩进不正确(这可能是由于在此处复制代码,否则根本无法运行)。

更改所有这些操作将使您的代码正常工作

>>> 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]