氣泡排序:將一組n個數兩兩進行比較,經過一趟比較可以將最大數「沉」到底部,而小的數都可以上浮乙個位置(看判斷條件,也可以說是最小的數「上浮」到頂部,而大的數都下沉乙個位置),經過n-1趟比較,就可以得到整個陣列的排序。需要引起注意的就是相等的數的處理。(一不小心就寫成選擇排序了,後面會專門講一下選擇排序和冒泡的區別)。
排序雖然可以從大到小,也可以從小到大,我還是一般喜歡從小到大來排,而且「冒泡」也喜歡按照人的正常邏輯習慣,小的數應該是輕的,應該往上冒,大的數沉應該下沉,針對陣列的排序會了,針對鍊錶的排序就簡單了,只是資料結構變化了一下。下面是完整的程式和測試結果:
驗證結果:
最簡單的排序演算法 氣泡排序
原理 比較兩個相鄰的元素,將值大或值小的元素交換至右端。思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部...
寫好最簡單的氣泡排序
氣泡排序,真的很簡單,不是嘛,如果給你15分鐘,也許你會很快就寫出來乙個,真的,我相信你,而且說不定考慮的還是相當周全滴,在此僅以此部落格記錄一下,我所認識的氣泡排序。氣泡排序,為什麼取這個名?你可以想想池塘裡的氣泡,從最底部向最上部浮起的過程,是不是由小變大的過程中,這是乙個物理知識,就不用說了吧...
寫好最簡單的氣泡排序
氣泡排序,真的很簡單,不是嘛,如果給你15分鐘,也許你會很快就寫出來乙個,真的,我相信你,而且說不定考慮的還是相當周全滴,在此僅以此部落格記錄一下,我所認識的氣泡排序。氣泡排序,為什麼取這個名?你可以想想池塘裡的氣泡,從最底部向最上部浮起的過程,是不是由小變大的過程中,這是乙個物理知識,就不用說了吧...