冒泡思想
每次比较两个相邻的元素,若符合规则,则交换位置,多次循环后完成排序。
详细讲解
- 里层for循环的逻辑:
- 第一个元素和第二个元素比较,如果小于,则交换两个元素的位置,否则不交换位置;
- 第二个元素和第三个元素比较,如果小于,则交换两个元素的位置,否则不交换位置;
- 类似第一步和第二步的过程,实现第三元素和第四元素比较、第四元素和第五元素比较;
- 第N步时倒数最后两个元素比较,全部比较之后,整个列表中最大的元素就找到了。
- 外层for循环的逻辑:
- 第一步到第N步,可以找到第一大的数字;
- 重复第一步到N-1步的过程,可以找到第二大的数字;
- 重复第一步到N-2步的过程,可以找到第三大的数字;
- 重复第一步到N-3步的过程,可以找到第四大的数字;
- 重复第一步的过程(即:N-(N-2)),找到第N-1大的数字。
代码块显示效果
def bubbleSort(array):
for i in range(len(array) - 1):
for j in range(len(array) - 1 - i):
if array[j] > array[j + 1]:
array[j], array[j + 1] = array[j + 1], array[j]
return array
print(bubbleSort([3, 5, 8, 1, 2, 10, 6]))
输出内容为:[1, 2, 3, 5, 6, 8, 10]