根据条件反转列表中的两个元素
Reversing two elements in list, based on condition
我正在尝试实现冒泡排序算法。
正如它所说 here,“冒泡排序是最简单的排序算法,它通过重复交换顺序错误的相邻元素来工作。”
视觉呈现
( 5 1 4 2 8 ) –> ( 1 5 4 2 8 )
到目前为止,我已经能够分两步识别哪个元素大于另一个。完成后,我在交换这些元素时遇到了一些问题。
目前,我有这样的东西。
代码
def bubbleSort(array):
for i in range(len(array)-1):
if array[i] > array[i+1]:
#My attempt of switching the two elements in a list
array[i+1],array[i] = array[i],array[i+1]
return array
print(bubbleSort([5,1,4,2,8]))
不幸的是,由于我的逻辑不正确,我没有得到排序列表。
输出
[1, 4, 2, 5, 8]
期望输出
[1 ,2 ,4 ,5 ,8]
我做错了什么,为什么排序不正确,我该怎么做才能解决这个问题?非常感谢详细的解释以及提供的代码。
你写的是正确的但不完整。 您刚刚完成了第一关。
您需要做的就是 运行 所有其他通行证 通过将您的代码修改为:
def bubbleSort(array):
for j in range(len(array)):
for i in range(len(array)-1):
if array[i] > array[i+1]:
array[i+1],array[i] = array[i],array[i+1]
return array
print(bubbleSort([5,1,4,2,8]))
您可以阅读这篇文章here 以获得更好的理解。
我正在尝试实现冒泡排序算法。 正如它所说 here,“冒泡排序是最简单的排序算法,它通过重复交换顺序错误的相邻元素来工作。”
视觉呈现
( 5 1 4 2 8 ) –> ( 1 5 4 2 8 )
到目前为止,我已经能够分两步识别哪个元素大于另一个。完成后,我在交换这些元素时遇到了一些问题。
目前,我有这样的东西。
代码
def bubbleSort(array):
for i in range(len(array)-1):
if array[i] > array[i+1]:
#My attempt of switching the two elements in a list
array[i+1],array[i] = array[i],array[i+1]
return array
print(bubbleSort([5,1,4,2,8]))
不幸的是,由于我的逻辑不正确,我没有得到排序列表。
输出
[1, 4, 2, 5, 8]
期望输出
[1 ,2 ,4 ,5 ,8]
我做错了什么,为什么排序不正确,我该怎么做才能解决这个问题?非常感谢详细的解释以及提供的代码。
你写的是正确的但不完整。 您刚刚完成了第一关。
您需要做的就是 运行 所有其他通行证 通过将您的代码修改为:
def bubbleSort(array):
for j in range(len(array)):
for i in range(len(array)-1):
if array[i] > array[i+1]:
array[i+1],array[i] = array[i],array[i+1]
return array
print(bubbleSort([5,1,4,2,8]))
您可以阅读这篇文章here 以获得更好的理解。