昨天去面試,hr問我關於演算法和資料結構的問題,結果連個氣泡排序我都給寫錯了,特意回來研究了下原理,免得以後又忘了;
首先定義乙個n個資料的陣列array;
然後根據氣泡排序的基本思想:
1.相鄰的2個數相比較,按照從小到大的順序將資料排列出來;
2.n個資料,那麼就要依次排序,第一次是n-1次相鄰數比較,第二次是n-2次相鄰數比較,最多進行n-1趟排序,即可得到排序結果;
按照自己的理解,原理我也只能這樣描述了;
還是寫個**來說明下更好
public class paixu ;
int temp = 0;
for (int i = 0; i < arr.length-1; i++)
}} for(int k=0;k
說下排序的順序:
第一趟排序比較了4次,陣列的結果為:4,7,0,2,12;
第2趟比較了3次,陣列的結果為:4,0,2,7,12
第3趟比較2次,陣列的結果為:0,2,4,7,12;
因為已經沒有要交換的值了,所以排序停止,根據上面的順序,可以知道氣泡排序就是每一次比較都是把比較的n-2個資料中最大數放在n,n-1...1上。
基本的原理就這樣了,不過該演算法的執行效率並不高,根據它的時間複雜度:氣泡排序的最壞時間複雜度為o(n2)。 演算法的平均時間複雜度為o(n2) 。
氣泡排序最好的時間複雜度為o(n)。 來看,這裡的執行效率顯然不好。
好了,今天記錄下來,以後不會再忘記了
氣泡排序原理及實現
氣泡排序就是每次將重的泡泡下沉,輕的泡泡上浮。通過一次次反覆的操作,實現排序目的。下面看一下冒泡的實現 public class test bubblesort data for int i 0 isystem.out.print data i private static void bubbles...
氣泡排序 bubble sort 原理及演示
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮...
Java 實現氣泡排序及優化
氣泡排序就是按索引逐次比較相鄰的兩個元素,滿足比較條件,則置換,否則不做改變。其優化手段可以從減少記憶體迴圈和外層迴圈著手。最差的冒泡 public void sort1 int ary system.out.println total time system.nanotime starttime ...