今天第一次写博客,最近正在研究排序算法,就从最简单的冒泡排序算法开始写(有些时候为了面试,冒泡排序算法被问到的几率还是很高的,不仅要求知道原理,还要会写)。
一. 首先看一下百度百科的算法原理。
1. 根据算法原理我们可以写一个比较简单的算法(这个不是最优的,因为可能循环没有结束的时候,就已经有序了)。
测试数组:{5,7,9,4,8}
测试结果如下:
[5, 7, 4, 8, 9]
[5, 4, 7, 8, 9]
[4, 5, 7, 8, 9]
[4, 5, 7, 8, 9]
[4, 5, 7, 8, 9]
通过结果不难发现,再循环到第四次的时候,这个结果已经有序了,不用再进行第五次的循环了。
2.我们可以改进我们的算法,让他在已经有序的时候,不在进行循环。
我们可以加一个boolean参数,每次外层循环开始的时候把他设为false,只要这次内循环有移动,就把它设为true,如何内循环没 有发生移动,就可以打断外层循环,排序结束。
测试数组:{5,7,9,4,8}
测试结果如下:
[5, 7, 4, 8, 9]
[5, 4, 7, 8, 9]
[4, 5, 7, 8, 9]