冒泡排序算法

来源:互联网 发布:域名未授权怎么解决 编辑:程序博客网 时间:2024/06/06 08:45

今天自己学习了一些算法,发现冒泡算法特别有趣,而且也是我们程序员平时面试的时候可能会遇到的面试题,所以我自己总结了一下冒泡算法,一方面是自己学习的记录,另外一方面也希望能够对读者有所帮助。
我们就选一组数组来进行冒泡排序,然后解释一下:
冒泡算法的话,我个人的理解就是通过对相邻两个数之间相互比较大小,之后逐渐的往后进行比较,直到比较出算法是从大到小或者是从小到大排序为止。
我假设现在有这样的一组数:1, 5, -8, 66, 93, -55, 3, 58, 91, 2000, -654, 993
我们要把这一组数从大到小进行排列:
*我们比较第一次之后的结果:5、 1、 66、 93、 -8、 3、 58、 91、 2000、 -55、 993、 -654

比较第二次的结果:5、 66、 93、 1、 3、 58、 91、 2000、 -8、 993、 -55、 -654、

比较第三次的结果:66、 93、 5、 3、 58、 91、 2000、 1、 993、 -8、 -55、 -654、

比较第四次的结果:93、 66、 5、 58、 91、 2000、 3、 993、 1、 -8、 -55、 -654、

比较第五次的结果:93、 66、 58、 91、 2000、 5、 993、 3、 1、 -8、 -55、 -654、

比较第六次的结果:93、 66、 91、 2000、 58、 993、 5、 3、 1、 -8、 -55、 -654、

比较第七次的结果:93、 91、 2000、 66、 993、 58、 5、 3、 1、 -8、 -55、 -654、

比较第八次的结果:93、 2000、 91、 993、 66、 58、 5、 3、 1、 -8、 -55、 -654、

比较第九次的结果:2000、 93、 993、 91、 66、 58、 5、 3、 1、 -8、 -55、 -654、

比较第十次的结果:2000、 993、 93、 91、 66、 58、 5、 3、 1、 -8、 -55、 -654、

比较第十一次的结果:2000、 993、 93、 91、 66、 58、 5、 3、 1、 -8、 -55、 -654、

最终排序的结果:2000、993、 93、91、66、58、5、3、1、-8、 -55、-654

冒泡排序其实在这个数组中就不外乎采用两个循环以及对它们比较之后进行位置的对换,理解起来应该是非常简单的,当然了如果我们是想要从小排到大,只需要是判断前一个是否大于后一个,之后交换位置即可。最后我们再使用一个For循环将结果输出。

最后附上代码:

package com.zyj.test;public class MyBubbleSort {    public static void main(String[] args) {        int BS[] = { 1, 5, -8, 66, 93, -55, 3, 58, 91, 2000, -654, 993 };        for (int i = 0; i < BS.length - 1; i++) {            for (int j = 0; j < BS.length - i - 1; j++) {                if (BS[j] < BS[j + 1]) {                    int temp = BS[j];                    BS[j] = BS[j + 1];                    BS[j + 1] = temp;                }            }        }        System.out.println("最终的排序结果是:");        for (int m = 0; m < BS.length; m++) {            System.out.print(BS[m]+"\t");        }    }}

冒泡排序算法就介绍到这里,希望对读者有所帮助。

1 0
原创粉丝点击