氣泡排序演算法 氣泡排序的基礎演算法和優化演算法

2021-10-12 09:08:17 字數 781 閱讀 6179

如有乙個數列有n(5)個元素,則至多需要n-1(4)趟迴圈才能保證數列有序

2.每一趟迴圈都從數列的第乙個元素開始比較,依次比較相鄰的兩個元素,比較到數列的最後

3.如果前乙個元素大於後乙個元素,則使用第三變數交換

原理

基礎演算法的缺點

1.每一趟比較都要比較到陣列的最後,沒有必要,只要比較到無序數列即可

for(int j=0

ij++){

i. …..

i j0 j<4

1 j<3

2 j<2

3 j<1

j

2.不管是否有序,都要進行n-1趟迴圈

如何判斷有序?比較了一趟,沒有發生交換,就是有序

定義乙個boolean型別的變數flag,預設有序true;發生交換,置為false,一趟迴圈結束後,根據flag的值判斷是否有序,有序,則退出迴圈

3.int temp 每次比較的時候都要給temp分配空間,比較完畢後翻放空間

所有的比較都使用乙個temp變數,同乙個空間,將temp變數提取到大迴圈外

演算法基礎 氣泡排序

從數列第乙個數字開始,與相鄰的後一位數字比較,如果前一位數字比後一位大,則置換它們的位置,一輪下來排到最後的是最大的數字,直到數列完全有序。要點 1.每輪排序最大的數字會被置換到最後,下一輪就不需要再對比這個數字了。因此第一輪需要對比n 1次,第二輪需要n 2次,第x輪只需要對比n x次。2.如果數...

演算法基礎 氣泡排序

氣泡排序是一種經典的排序演算法,可能是我們學習過程中學習到的第乙個排序演算法。氣泡排序,顧名思義,一輪一輪把小元素從後面替換到前面 或者是大元素逐步替換到後面 的一種演算法。假如有乙個長度為10的陣列array,程式會進行n輪掃瞄,第一輪掃瞄會從array 0 到array 9 進行掃瞄,若存在前面...

基礎演算法 氣泡排序

氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的...