排序演算法(一)氣泡排序

2022-07-28 10:06:27 字數 479 閱讀 2403

最基礎的排序——氣泡排序 

假設有無序陣列array長度為n,以由小到大排序為例。冒泡的原理是這樣的: 

1.比較相鄰的前兩個資料,如果前面的資料array[0]大於後面的資料array[1] (為了穩定性,等於就不交換),將前面兩個資料進行交換。在將計數器 i ++; 

2.當遍歷完n個資料一遍後,最大的資料就會沉底在陣列最後array[n-1]。 

3.然後n=n-1;再次進行遍歷排序將第二大的資料沉到倒數第二位置上array[n-2]。再次重複,直到n=0;將所有資料排列完畢。

可以得出,冒泡在 n減到 0 為止,每遍近似遍歷了n個資料。所以冒泡的時間複雜度是 -o(n^2)。

實現**如下:

public void sort (int array, int n)   

} }

}

時間複雜度邏輯上是-o(n^2),所以冒泡還是效率比較低下的,資料較大時,建議不要採用冒泡。 

排序演算法 一 氣泡排序

排序的演算法有很多,例如直接插入排序,希爾排序,氣泡排序,選擇排序,快速排序,堆排序等等。最簡單基礎就是氣泡排序了,關於排序hi有乙個系列。今天是第一篇,主要講氣泡排序演算法思想以及從各個方面對它進行優化。氣泡排序 原理舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就...

排序演算法(一) 氣泡排序

排序思路 樣例 1.從首位元素開始,前後元素相比較,保證 小在前 大在後 逐個元素向後遞推。一遍結束後,最大元素將位於排序末位。16 35 9 35 5 35 20 35 結果 2.因為最大元素已經排位完畢,所以不考慮末位最大元素,從頭開始,再做一輪排序。排序範圍 結果 可以看出,第二大元素已經排至...

排序演算法(一)氣泡排序

氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。以將陣列 number n 中的n個數從小到大排序為例 ...