冒泡排序
冒泡排序算是比较符合大家直观想象内的一种比较排序方法,也是容易实现的比较算法之一
思路,有0~N个无规则排列的数,需要进行排序,那么
一、从0循环到N,依次将相邻的数比较,如果左侧数大于右侧数,交换,这样走到最后,最大的数已经到了最右侧
二、从0循环到N-1,依次将相邻的数比较,如果左侧数大于右侧数,交换,这样走到最后,次大的数已经到了右侧倒数第二位
三、依此类推,每一轮迭代都将最大的数扔到当前循环范围内的队尾,保证了数组的有序性
图示
第一轮比较
假设一开始,数组是这样子的,那么第一轮的比较就是从0-4
那么第一轮的执行顺序如下
- 先比较0号索引与1号索引,不交换,所以结果与之前保持一致
比较对象索引号 | 比较结果 | 输出结果 |
---|---|---|
0,1 | 5小于9,不交换 | 5 9 2 5 1 |
- 接下来比较1号索引与2号索引,发现2号索引值要小于1号索引,开始交换数据,交换完的结果如下
比较对象索引号 | 比较结果 | 输出结果 |
---|---|---|
1,2 | 9大于2,交换 | 5 2 9 5 |