冒泡排序算法

来源:互联网 发布:c语言栈和队列调用 编辑:程序博客网 时间:2024/06/07 00:07

 今天第一次写博客,最近正在研究排序算法,就从最简单的冒泡排序算法开始写(有些时候为了面试,冒泡排序算法被问到的几率还是很高的,不仅要求知道原理,还要会写)。

     一. 首先看一下百度百科的算法原理。

         

          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]


0 0