通过交换相邻数字进行线性排序

时间:2019-01-20 15:54:58

标签: python

我一直在尝试完成一个简单的线性排序,在这种情况下,它将在每个索引处进行交换,除非它到达末尾。请帮助。 (此时可能不需要while循环)

query: ParameterBag {#16 ▼
    #parameters: array:1 [▼
      "feedback" => array:11 [▼
        "name" => "a"
        "email" => "a@a.a"
        "_token" => "NJHBv7NpwYlugFcU-sE0qoBEQkS38yhxOjbklkHu8j0"
      ]
    ]
  }

我希望列表中的数字是0到9,但我会得到9、9、7、7、5、5、3、3、1、1。

1 个答案:

答案 0 :(得分:0)

您交换不正确。您永远不会以正确的方式分配阵列位置。正如另一个回答者所解释的...

num = container

...未分配给数组位置。

此外,不需要while循环。这是一种更紧凑的方法:

array = list(range(9, -1, -1))

ln = len(array)

for num in array:
    if num > array[ln-1]:
        container = array[ln-1]
        array[ln-1] = num
        array[array.index(num)] = container
    ln -= 1

print(array)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]