Python实现冒泡排序方法讲解

冒泡思想

每次比较两个相邻的元素,若符合规则,则交换位置,多次循环后完成排序。

详细讲解

  • 里层for循环的逻辑:
  1. 第一个元素和第二个元素比较,如果小于,则交换两个元素的位置,否则不交换位置;
  2. 第二个元素和第三个元素比较,如果小于,则交换两个元素的位置,否则不交换位置;
  3. 类似第一步和第二步的过程,实现第三元素和第四元素比较、第四元素和第五元素比较;
  4. 第N步时倒数最后两个元素比较,全部比较之后,整个列表中最大的元素就找到了。
  • 外层for循环的逻辑:
  1. 第一步到第N步,可以找到第一大的数字;
  2. 重复第一步到N-1步的过程,可以找到第二大的数字;
  3. 重复第一步到N-2步的过程,可以找到第三大的数字;
  4. 重复第一步到N-3步的过程,可以找到第四大的数字;
  5. 重复第一步的过程(即: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]
 
原文地址:https://www.cnblogs.com/ddpeng/p/11302355.html