数据结构 冒泡排序

https://github.com/yzmaodeng/java-keypointknowledge/tree/master/src/main/java/com/zl/Datastructure/BubbleSort


说的简单一点   就是


    一个村子看谁的本事大,村长为了不让老百姓乱跑,就每一个房子跑,一房子为单位,两个两个的比较,没比较一次就记录一下那个房子里面的人本事大,比较一轮得到一个最大的,同理剩下的房子里面用递归的方式来比较。



 

闭上眼都要背过来的代码

        for(int i = 1 ; i < array.lengthi++){  3 个人比较两轮

            for(int j = 0 ; j < array.length-i ; j++){ 第一轮 有3个人  比较两次

                if(array[j]>array[j+1]){

                    array[j]=array[j]^array[j+1];

                    array[j+1]=array[j+1]^array[j];

                    array[j]=array[j]^array[j+1];

                    flag = false;

                }

            }

          }






 

 

package com.zl.Datastructure.BubbleSort;


public class BubbleSort {

    public static int[] sort(int[] array){

        //这里for循环表示总共需要比较多少轮

        for(int i = 1 ; i < array.length; i++){

            //设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。

            boolean flag = true;

            //这里for循环表示每轮比较参与的元素下标

            //对当前无序区间array[0......length-i]进行排序

            //j的范围很关键,这个范围是在逐步缩小的,因为每轮比较都会将最大的放在右边

            for(int j = 0 ; j < array.length-i ; j++){

                if(array[j]>array[j+1]){

                    array[j]=array[j]^array[j+1];

                    array[j+1]=array[j+1]^array[j];

                    array[j]=array[j]^array[j+1];

                    

                    

                    flag = false;

                }

            }

            if(flag){

                break;

            }

            //第 i轮排序的结果为

            System.out.print("第"+i+"轮排序后的结果为:");

            display(array);

             

        }

        return array;

         

    }

     

    //遍历显示数组

    public static void display(int[] array){

        for(int i = 0 ; i < array.length ; i++){

            System.out.print(array[i]+" ");

        }

        System.out.println();

    }

     

    public static void main(String[] args) {

        int[] array = {4,2,8,9,5,7,6,1,3};

        //未排序数组顺序为

        System.out.println("未排序数组顺序为:");

        display(array);

        System.out.println("-----------------------");

        array = sort(array);

        System.out.println("-----------------------");

        System.out.println("经过冒泡排序后的数组顺序为:");

        display(array);

    }

 

}



  

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值