步遥情感网
您的当前位置:首页数据结构排序之冒泡排序--Java

数据结构排序之冒泡排序--Java

来源:步遥情感网

今天给大家来讲解一下冒泡排序。

原理讲解

首先来介绍一下冒泡排序的基本原理:对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就会逐个往前移动,好像气泡网上漂浮一样。

冒泡排序特点:升序排序当中每一轮比较会把最大的数沉到最底(这里以从小到大为例),所有相互比较的次数每一轮会比前一轮少一次。

通过原理我们可以了解到,(冒大泡来举例)冒泡排序每次都是通过目前能找到的最大的数A,来和后面的一个数进行比较,如果比他小,就要和A交换位置,如果比A这个数大,那么这个更大的数成为A,直到A成为最后的一个数。

动图深入理解

如果不太理解的同学,我们可以看下面的动态图。

代码讲解

    public static void main(String[] args){
        int[] arr = {6,1,5,7,9,4,8,2,3};
        System.out.println("排序前:"+Arrays.toString(arr));
        System.out.println("排序后:"+Arrays.toString(sort(arr)));
    }
    public static int [] sort(int[] aa){
        for(int i=0;i<aa.length;i++){
            for(int k=0;k<aa.length-i-1;k++){
                if(aa[k]>aa[k+1]){
                    int temp = aa[k];
                    aa[k]=aa[k+1];
                    aa[k+1]=temp;
                }
            }
        }
        return aa;
    }

在sort 这个方法中我们可以看到有2层for循环。外层for循环,其中i代表第几次进行寻找最大的数,也就在第i次循环中,我们寻找第i大的数。

而内层中则是执行“如果遇到比目前最大的数还要大的数,则进行交换”

我们运行测试,检验代码正确性:

好了,这次的文章就到这里,喜欢的同学可以点赞收藏,遇到问题,可以评论,或者留言,我一定会第一时间给到回馈,感谢观看!!

注:本文为本人学习时心得分享,有讲错或者需要改正的地方,请指正,我会虚心接受

因篇幅问题不能全部显示,请点此查看更多更全内容