美文网首页
冒泡排序算法

冒泡排序算法

作者: 和尚code | 来源:发表于2018-04-08 18:57 被阅读0次

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

    介绍

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

    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

    相关文章

      网友评论

          本文标题:冒泡排序算法

          本文链接:https://www.haomeiwen.com/subject/dvymhftx.html