我一直在尝试完成一个简单的线性排序,在这种情况下,它将在每个索引处进行交换,除非它到达末尾。请帮助。 (此时可能不需要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。
答案 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]