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

2021-08-21 14:10:29 字數 582 閱讀 1400

排序思路:

樣例:

1. 從首位元素開始,前後元素相比較,保證「小在前、大在後」。逐個元素向後遞推。一遍結束後,最大元素將位於排序末位。

(16<->35)

(9<->35)

(5<->35)

(20<->35)

結果:

2. 因為最大元素已經排位完畢,所以不考慮末位最大元素,從頭開始,再做一輪排序。

排序範圍:

結果:

可以看出,第二大元素已經排至倒數第二位

3.以此類推,繼續排序

結果:

c實現

void

int bubblesort(int

array, int length)

}//end-of-for(j)

}//end-of-for(i)

}

該演算法時間複雜度為o(n2)

對於已排序陣列,時間複雜度最好為o(n),具體優化不再詳述。

排序演算法 一 氣泡排序

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

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

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

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

氣泡排序。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有 再需要交換,也就是說該數列已經排序完成。假設有乙個無序序列 第一趟排序 通過兩兩比較,找到第一小的數值 1 將其放在序列的第一位。第二趟排序 通過兩兩比較,找到第二小的數值...