繁体   English   中英

冒泡排序未正确排序列表

[英]Bubble sort not correctly sorting list

我写了下面的冒泡排序,为什么 output 不会得到正确的结果?

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. 您在while循环结束时设置x = False ,因此循环只运行一次,将其设置在循环的第一行。
  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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM