介绍

冒泡排序是一种简单的排序方法。它的核心思想是对数组进行=N - 1=次遍历,每一次遍历的过程中,会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!

方法论

正像刚才介绍的一样,为了给一个数组进行排序,我们遍历这个数组并且依次比较两个相邻的数组元素,如果前面的元素大于后面的元素,则交换两者之间的位置。对于一个数组长度为N的数组需要进行N - 1此遍历操作。

接下来我用数组{47,17, 23, 5, 76, 10}来举例演示冒泡排序:

  1. 进行第一次遍历,并从比较 4717 的大小开始,因为47 > 17, 所以需要交换两者的位置,结果如下:
    【1747】,23,5,76,10
  2. 接下来将比较的下标往右移一位,并重复上一步操作,比较 4723
    17,【2347】,5,76,10
  3. 继续重复第2步,直到下标移动到 N - 1结束
    17, 23,【5,47】,76,10
    17, 23,5,【4776】,10
    17,23,5,47,【1076

可以看到

上图

下图是以 {45, 17, 23, 5, 76, 10} 为例,演示冒泡排序5次(N = 6)遍历的过程
冒泡排序(Bubble Sort)
可以看到, 在第一次遍历之后,数组中最大的元素 76 已经在数组的最后位置。我们需要做的就是重复这个遍历的操作,直到数组中最后一个元素5被排序为止。

相关文章: