歡迎探討椅文,如有錯(cuò)誤敬請指正
介紹
第一次寫簡書缭嫡,一直想自己建個(gè)博客缔御,來寫入自己的學(xué)習(xí)中遇見的問題,但是可能自己比較懶吧妇蛀,博客到現(xiàn)在還沒有起來耕突,但是以后博客肯定是會有的。學(xué)冒泡算法很久了 评架,但是很多時(shí)候總是記不住眷茁,今天就把冒泡順序記錄一遍吧。
1古程、何為冒泡算法蔼卡?
冒泡排序是一種簡單的排序方法,它的基本思想是:通過相鄰兩個(gè)元素之間的比較和交換挣磨,使較大的元素逐漸從前面移向后面(升序),就像水底下的氣泡一樣逐漸向上冒泡荤懂,所以被稱為“冒泡”排序茁裙。冒泡排序的最壞時(shí)間復(fù)雜度為O(n2),平均時(shí)間復(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+" ");
}
}
}
首先:
第一個(gè)for是來記錄這是第幾輪比較
eg:此程序有8個(gè)數(shù)晤锥,for的條件是(數(shù)組大小-1),意思是要進(jìn)行7輪的交換,同時(shí)i也可以表示為 此輪比較結(jié)束之后矾瘾,有多少個(gè)數(shù)是已經(jīng)排好序的數(shù)女轿。
第二個(gè)for是來判斷此輪比較,兩個(gè)數(shù)之間交換需要進(jìn)行幾次壕翩,所以是第一個(gè)for循環(huán)條件再減去已經(jīng)排好序的幾個(gè)數(shù)(i)蛉迹,所以才得a.length-1-i