在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如:
一个保存了班级学号的数组,排序后更容易分区好学生和坏学生;
一个保存了商品单价的数组,排序后更容易看出它们的性价比。
以从小到大排序为例,冒泡排序的整体思想是这样的:
算法思想:
·从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。
·经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。
·第一轮结束后,继续第二轮。
·仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。
·经过第二轮的比较,就可以找到次大的元素,并将它放到倒数第二个位置。
·以此类推,进行 n-1(n 为数组长度)轮“冒泡”后,就可以将所有的元素都排列好。
整个排序过程就好像气泡不断从水里冒出来,最大的先出来,次大的第二出来,最小的最后出来,所以将这种排序方式称为冒泡排序(Bubble Sort)。下
面我们以“3 2 4 1”为例对冒泡排序进行说明。</