排序演算法 1 氣泡排序

2021-08-26 02:40:39 字數 780 閱讀 3688

氣泡排序是非常容易理解和實現,以從小到大排序舉例:設陣列長度為n。

1. 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。

2. 這樣對陣列的第0個資料到n-1個資料進行一次遍歷後,最大的乙個資料就「沉」到陣列第n-1個位置。

3. n=n-1,如果n不為0就重複前面二步,否則排序完成。

//冒泡1

public

void

bubblesort1(int arr)

}}

下面對其進行優化,設定乙個標誌,如果這一趟發生了交換,則為true,否則為false。明顯如果有一趟沒有發生交換,說明排序已經完成。

//冒泡2

public

static

void

bubblesort2(int arr) }}

k--;

}}

再做進一步的優化。如果有100個數的陣列,僅前面10個無序, 後面90個都已排好序且都大於前面10個數字,那麼在第一趟遍歷後,最後發生交換的位置必定小於10, 且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。

//冒泡3

public

static

void

bubblesort3(int arr) }}

}

氣泡排序畢竟是一種效率低下的排序方法,在資料規模很小時,可以採用。資料規模比較大時,最好用其它排序方法。

排序演算法1 氣泡排序

氣泡排序 public class bubblesort int arr 交換變數 int temp 判斷上一次是否進行了排序,若上次沒有進行排序,證明排序已經提前完成,可提前跳出迴圈,結束排序 boolean flag false for int i 0 i arr.length 1 i if f...

排序演算法1 氣泡排序

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

氣泡排序演算法 1

氣泡排序是一種比較簡單的排序演算法,其本質是相鄰的兩個元素進行大小比較,最終使得所有的元素形成從小到大或者從大到小的排列 演算法原理 比較相鄰的元素,不相等,就進行交換 對所有的相鄰元素進行第1步的操作,第一輪比較下來,最大 小 的元素排在了最尾部 最大 小 第二大 小 第三大 小 的元素依次會排到...