Java 冒泡排序

/*
Java 冒泡排序
/
依次比较两个相邻元素,将较大的元素放到后面,每轮排序都会把最大的元素放到最后面,就如同冒泡一样,最大的气泡浮到水面上
import java.util.Arrays;

public class BubbleSort {

public static void main(String[] args) {

    int[] data = new int[] {9, -16, 29, 23, -30, -49, 21, 30, 13};

  

    int arrayLength = data.length;

    System.out.println("排序前:"+Arrays.toString(data));

    for(int i=0;i<arrayLength-1;i++) {

      

        for(int j=0;j<arrayLength-1-i;j++) {

          

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

                int temp = data[j];

                data[j] = data[j+1];

                data[j+1] = temp;

            }

        }

        System.out.println("第"+(i+1)+"次排序后:"+Arrays.toString(data));

    }

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

    System.out.println("最终排序结果:"+Arrays.toString(data));

}

}

(3).时间复杂度:

设数组data的长度是n,所以外层循环i 的取值分别是 0 1 2 3 4 … n-2,每次外层循环内层循环次数是:n-2-i

i : 0 1 2 3 4 … n-2

内层循环次数: n-2 n-3 n-4 n-5 n-6 0

所以程序共执行了 (n-2) + (n-3) + (n-4) + … + 1 = (n-2)(n-2+1)/2 = (n^2 -3n + 2)/2

时间复杂度是O(n2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值