一.思想:
它重複走訪數列,走訪n-1遍,每次比較相鄰的兩個元素,如果第乙個元素大於(小於)後乙個元素,則交換(取決於你約定是公升序還是降序),這樣就可以把最大(最小)的數沉到最後面。
二.例子:
比如5,3,2,4.第一趟比較過程為:
1.比較5和3,5>3,則交換,交換後的序列為3,5,2,4.
2.比較5,2,5>2,則交換,交換後的序列為3,2,5,4.
3.比較5,4,5>2,則交換,交換後的序列為3,2,4,5.
這樣就可以把最大的數5沉到最後面,第二趟,第三趟依次把4,3沉到倒數第二和倒數第三的位置。
三.實現**:
public class bubblesort ;
system.out.print("原始資料:");
print(num);
sort(num);
system.out.print("排序後資料:");
print(num);
} public static void sort(int num)
} }
public static void print(int num)
system.out.print("\n");
} }
四.複雜度和應用:
時間複雜度為:o(n*n), 空間複雜度為o(1).是穩定的排序演算法。
應用:氣泡排序主要用於教學,可在問題規模較小的時候使用,簡單易懂。
java 排序演算法 氣泡排序
氣泡排序 感覺和選擇排序有點像,每迴圈一次,就能得到迴圈佇列中最小的值,按照江湖規矩,輪武功排行,幾個人先選出來兩個進行比試,贏的和下乙個人接著比,每次都選出來贏的那個人,和下乙個人進行比較,最終選出來的就是武功最nb的那個,那麼他就是老大了,老 出來後,就按照這個辦法,在剩餘的兄弟裡面接著比武吧,...
排序演算法 1 氣泡排序
氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。冒...
排序演算法1 氣泡排序
氣泡排序 public class bubblesort int arr 交換變數 int temp 判斷上一次是否進行了排序,若上次沒有進行排序,證明排序已經提前完成,可提前跳出迴圈,結束排序 boolean flag false for int i 0 i arr.length 1 i if f...