冒泡排序算法

欢迎探讨,如有错误敬请指正

介绍

第一次写简书,一直想自己建个博客,来写入自己的学习中遇见的问题,但是可能自己比较懒吧,博客到现在还没有起来,但是以后博客肯定是会有的。学冒泡算法很久了 ,但是很多时候总是记不住,今天就把冒泡顺序记录一遍吧。

1、何为冒泡算法?

冒泡排序是一种简单的排序方法,它的基本思想是:通过相邻两个元素之间的比较和交换,使较大的元素逐渐从前面移向后面(升序),就像水底下的气泡一样逐渐向上冒泡,所以被称为“冒泡”排序。冒泡排序的最坏时间复杂度为O(n2),平均时间复杂度为O(n2)

2、代码

Demo.java

    public static void main(String[] args) {
        double[] a = {1,5,0,50,20,10,13,19};
        double temp = 0;
        for (int i = 0; i < a.length-1; i++) {
            for (int j = 0; j < a.length-1-i; j++) {
                if (a[j]>a[j+1]) {
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        for (double d : a) {
            System.out.print(d+" ");
        }
    }
}

首先:
第一个for是来记录这是第几轮比较
eg:此程序有8个数,for的条件是(数组大小-1),意思是要进行7轮的交换,同时i也可以表示为 此轮比较结束之后,有多少个数是已经排好序的数。
第二个for是来判断此轮比较,两个数之间交换需要进行几次,所以是第一个for循环条件再减去已经排好序的几个数(i),所以才得a.length-1-i

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容