氣泡排序(bubble sort)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
氣泡排序演算法的運作如下:
①. 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
②. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
③. 針對所有的元素重複以上的步驟,除了最後乙個。
④. 持續每次對越來越少的元素重複上面的步驟①~③,直到沒有任何一對數字需要比較。
氣泡排序需要兩個巢狀的迴圈. 其中,外層迴圈移動游標;內層迴圈遍歷游標及之後(或之前)的元素, 通過兩兩交換的方式, 每次只確保該內迴圈結束位置排序正確, 然後內層迴圈週期結束, 交由外層迴圈往後(或前)移動游標, 隨即開始下一輪內層迴圈, 以此類推, 直至迴圈結束.
public static void bubblesort(int arr)
}} }
演算法基礎 氣泡排序
從數列第乙個數字開始,與相鄰的後一位數字比較,如果前一位數字比後一位大,則置換它們的位置,一輪下來排到最後的是最大的數字,直到數列完全有序。要點 1.每輪排序最大的數字會被置換到最後,下一輪就不需要再對比這個數字了。因此第一輪需要對比n 1次,第二輪需要n 2次,第x輪只需要對比n x次。2.如果數...
演算法基礎 氣泡排序
氣泡排序是一種經典的排序演算法,可能是我們學習過程中學習到的第乙個排序演算法。氣泡排序,顧名思義,一輪一輪把小元素從後面替換到前面 或者是大元素逐步替換到後面 的一種演算法。假如有乙個長度為10的陣列array,程式會進行n輪掃瞄,第一輪掃瞄會從array 0 到array 9 進行掃瞄,若存在前面...
氣泡排序演算法 氣泡排序的基礎演算法和優化演算法
如有乙個數列有n 5 個元素,則至多需要n 1 4 趟迴圈才能保證數列有序 2.每一趟迴圈都從數列的第乙個元素開始比較,依次比較相鄰的兩個元素,比較到數列的最後 3.如果前乙個元素大於後乙個元素,則使用第三變數交換 原理 基礎演算法的缺點 1.每一趟比較都要比較到陣列的最後,沒有必要,只要比較到無序...