经典排序算法--冒泡排序

冒泡排序原理:

  排序每一轮确定一个最小值或最大值,下一轮排序元素数量就可以减一,所以最坏情况只要排序数组长度减一次就可以将顺序确定下来。

实现过程

假设本次排序按从小到大的顺序排列。
  第一次排序前,用两个指针分别指向数组0号元素和1号元素,如果0号元素大于1号元素,两个元素交换位置,否顺序不变,然后指针各自向后移一位,所以只要初始指向1号元素的指针到达数组尾部,就说明两个指针已经遍历过数组的所有元素,此时即可停止本轮排序。经过第一轮排序后,可以确定出一个最大值,且这个值会排在数组的最后一个位置,然后进行下一轮排序,下一轮排序又可以确定出倒数第二大的元素,并且会排在数组倒数第二个位置,如此循环数组长度减1次,则数组的顺序就一定是从小到大排列的。
代码如下:由代码可以看出时间复杂度为O(n2

 public static int[] bobbleSort(int[] array) {
        int temp;
        for (int j = 0; j < array.length; j++) {

            for (int i = 0; i < array.length - j - 1; i++) {
                if (array[i] > array[i + 1]) {
                    temp = array[i];
                    array[i] = array[i + 1];
                    array[i + 1] = temp;
                }
            }
        }
        return array;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值