常見排序演算法01之氣泡排序與選擇排序

2021-10-22 23:56:31 字數 741 閱讀 8681

1 冒泡法

以8,16,1,5為例。假設從小到大,冒泡法是相鄰兩數比較的,那麼我們8和16比,8小所以不換,然後16與1比,16大要換,即變成了8,1,16,5;然後16和5比,16大要換,變成8,1,5,16。可以看出這是我們第一次相鄰兩兩比較的結果,並不能完全排好序,所以我們需要進行多次比較,多少次呢?可以看出,一輪確定乙個最大數,所以我們n輪就可以確定n個數,實際上可以減少最後一輪比較,因為最後只剩乙個數就沒必要再比較。例5,8,16排好後只剩1就沒必要比較了,所以可以n-1輪。

給出冒泡法:

這裡有個小建議,我一般先寫if裡的條件,再寫內嵌的for裡的條件,這樣比較容易確定。

//冒泡法

intmaopao

(int arr)

}}return0;

}

選擇排序:以8,16,1,5為例。假設從小到大,選擇排序是先設第乙個數為最小值min(實際用下標)並先儲存,然後用最小值的下標min與整個陣列的每個數相比為一輪,確定乙個最小值。8和16相比,8小不換,然後8又和1相比,1小記錄1的下標min=2;然後min又與5比,1小不換,最後如果最小值下標不是初始的i,就說明第乙個數不是最小值,需要交換。看不懂也沒關係,直接看**:

//選擇排序

intselect

(int arr)

if(min!=i)

}return0;

}

常見排序演算法之氣泡排序

1 首先,從第乙個元素開始,比較該元素與該元素相鄰的下乙個元素的大小 即第乙個元素與第二個元素的大小 如果該元素比較大則交換位置,否則不交換位置。2 按照1的步驟不斷重複的比較下一元素與其相鄰元素之間的大小,直到第n 1個元素,第一趟比較結束。例如 接下去是第二個元素,重複 1 的步驟,比較其與其相...

常見排序演算法之氣泡排序

氣泡排序 bubble sort 是一種較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從小到大 首字母從a到z 錯誤就把他們交換過來。比較相鄰的元素。如果第乙個比第二個大 公升序 就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對...

常見演算法之氣泡排序

氣泡排序由於其簡單,通常是我們學習各類程式語言首先選擇學習的乙個排序演算法。1 public class bubblesort 5 建立氣泡排序類的物件 6 bubblesort sorter new bubblesort 7 呼叫排序方法將陣列排序 8sorter.sort array 9 10 ...