排序思路:
樣例:
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 將其放在序列的第一位。第二趟排序 通過兩兩比較,找到第二小的數值...