Java 数组:冒泡排序

导读:本篇文章讲解 Java 数组:冒泡排序,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Java 数组的冒泡排序


冒泡排序的基本思想是通过比较相邻数据的大小,来判断是否交互位置,通过第一轮遍历比较,找到最大的,或者最小的值,并且交换到列表的尾部。循环多次将无无序列表进行排序。

在这里插入图片描述

package com.cyj.demo;

/**
 * 
 * Function:
 * Author:@author chenyongjia
 * Date:2019-11-04 23:15
 * Desc:无
 */
public class BubbleSort {

    public static void main(String[] args) {
        int[] array = new int[]{2, 3, 1, 4, 7, 8, 3, 5, 2, 6, 8, 9, 1};
        int[] ints = bubbleSort(array);
        for (int i = 0; i < ints.length; i++) {
            System.out.println(ints[i]);
        }
    }

    public static int[] bubbleSort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - i - 1; j++) { if (array[j] > array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }
}

说明

冒泡排序的形式有很多种,上面只是提供的一种思路,还有其他方式,小伙伴可以自行去尝试。

  • 时间复杂度:在设置标志变量之后:
    当原始序列“正序”排列时,冒泡排序总的比较次数为n-1,移动次数为0,也就是说冒泡排序在最好情况下的时间复杂度为O(n);
    当原始序列“逆序”排序时,冒泡排序总的比较次数为n(n-1)/2,移动次数为3n(n-1)/2次,所以冒泡排序在最坏情况下的时间复杂度为O(n^2);
    当原始序列杂乱无序时,冒泡排序的平均时间复杂度为O(n^2)。
  • 空间复杂度:冒泡排序排序过程中需要一个临时变量进行两两交换,所需要的额外空间为1,因此空间复杂度为O(1)。
  • 稳定性:冒泡排序在排序过程中,元素两两交换时,相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97649.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!