分享
三行代码  ›  专栏  ›  技术社区  ›  Alex11

气泡排序不正确排序列表

  •  0
  • Alex11  · 技术社区  · 1 周前

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

    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 回复  |  直到 1 周前
        1
  •  0
  •   Nick    1 周前
    1. 你准备好了 x = False 在你的最后 while 循环,所以循环只运行一次,设置在循环的第一行。
    2. x == True 而不是 x = True 所以你的循环只能运行一次 x False .
    3. 你没准备好 在循环开始之前,它甚至不会进入循环。

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

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