一.冒泡排序的原理:比较相邻的两个元素,将值大的元素交换到右端
1).将索引为0和1的两个进行比较,7大于2,将两者交换
2).将索引为1和2的两个进行比较,7大于5,将两者交换
6)经过一轮交换之后,最大数6移到了最右边
二.思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。第一趟比较完之后,最后一个数字为最大数字。第二趟比较完后,倒数第二个数字比前面的所有数字大。依次排下去即为有序数组。
三.算法演示:
下标 | 0 | 1 | 2 | 3 | 4 |
数据 | 7 | 2 | 5 | 6 | 3 |
下标 | 0 | 1 | 2 | 3 | 4 |
数据 | 2 | 7 | 5 | 6 | 3 |
下标 | 0 | 1 | 2 | 3 | 4 |
数据 | 2 | 5 | 7 | 6 | 3 |
3).依次往后比较,2和3,3和4
下标 | 0 | 1 | 2 | 3 | 4 |
数据 | 2 | 5 | 6 | 3 | 7 |
4)至此,第一次交换结束,数组中最大数7被移到了最右侧。
5)接下来对除最大数之外的其余数组进行排序。
下标 | 0 | 1 | 2 | 3 | 4(不再参与排序) |
数据 | 2 | 5 | 6 | 3 | 7(不再参与排序) |
下标 | 0 | 1 | 2 | 3 | 4(不再参与排序) |
数据 | 2 | 5 | 3 | 6 | 7(不再参与排序) |
7)依次按上面的排序即完成冒泡排序
四.代码参考:代码地址