冒泡排序算法

歡迎探討,如有錯誤敬請指正

介紹

第一次寫簡書,一直想自己建個博客,來寫入自己的學(xué)習(xí)中遇見的問題,但是可能自己比較懶吧,博客到現(xiàn)在還沒有起來,但是以后博客肯定是會有的。學(xué)冒泡算法很久了 ,但是很多時候總是記不住,今天就把冒泡順序記錄一遍吧。

1、何為冒泡算法?

冒泡排序是一種簡單的排序方法,它的基本思想是:通過相鄰兩個元素之間的比較和交換,使較大的元素逐漸從前面移向后面(升序),就像水底下的氣泡一樣逐漸向上冒泡,所以被稱為“冒泡”排序。冒泡排序的最壞時間復(fù)雜度為O(n2),平均時間復(fù)雜度為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個數(shù),for的條件是(數(shù)組大小-1),意思是要進行7輪的交換,同時i也可以表示為 此輪比較結(jié)束之后,有多少個數(shù)是已經(jīng)排好序的數(shù)。
第二個for是來判斷此輪比較,兩個數(shù)之間交換需要進行幾次,所以是第一個for循環(huán)條件再減去已經(jīng)排好序的幾個數(shù)(i),所以才得a.length-1-i

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容