交换排序之冒泡排序 Java代码

交换排序之冒泡排序  Java代码:

算法思想:将要排序的序列,在序列内部的相邻序列进行两两比较,如果为逆序(A【d】》A【d+1】)就交换。

实列:

这就是一次冒泡的过程,在重复冒泡过程(如果序列长度为n,那么需要冒泡的次数应该就是n-1次)

特点:由于冒泡的过程可以从前往后进行冒泡(每次冒泡都会找到该序列的最大值)也可以从后往前冒泡两种方式(每次冒泡都会找到该序列的最小值

Java代码:

public static void bubbleInsort(int[] arr) {
    int i,j; //循环变量
    int temp = 0; //用于交换的第三方变量
    boolean flag; //判断序列是否完成了冒泡排序(就是序列是否已经有序)
    for (i=0;i<arr.length-1;i++){ //冒泡次数
        flag = false;
        for (j=arr.length-1;j>i;j--){ //从后往前比较相邻元素
            if (arr[j-1]>arr[j]){ //交换条件
                temp = arr[j-1];
                arr[j-1] = arr[j];
                arr[j] = temp;
            }
            flag = true;
        }
        if (flag == false){
            return;
        }
    }
}

public static void main(String[] args) {
    int [] arr = {3,7,2,8,6,9,1,4,5};
    bubbleInsort(arr);
    for (int i =0;i<arr.length;i++){ //升序输出序列
        System.out.print(arr[i]+" ");
    }
    System.out.println("-----------------------------------");
    for (int i =arr.length-1;i>=0;i--){ //逆序输出序列
        System.out.print(arr[i]+" ");
    }
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值