冒泡排序是排序演算法的一種,思路清晰,程式碼簡潔,常被用在大學生電腦課程。
「冒泡」這個名字的由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名。
這裡以從小到大排序為例進行講解。
基本思想及舉例說明
冒泡排序的基本思想就是不斷比較相鄰的兩個數,讓較大的元素不斷地往後移。經過一輪比較,就選出最大的數;經過第2輪比較,就選出次大的數,以此類推。
下面以對 3 2 4 1 進行冒泡排序說明。
第一輪排序過程
3 2 4 1 (最初)
2 3 4 2 (比較3和2,交換) (比較4和1,交換)
第一輪結束,最大的數4已經在最後面,因此第二輪排序只需要對前面三個數進行再比較。
第二輪排序過程
2 3 1 4 (第一輪排序結果)
2 3 1 4 (比較2和3,不交換)
2 1 3 4 (比較2和3,不交換)
2 1 3 4 (比較23和1,交換第二個,第二大的數字已經排在倒數第二個位置,所以第三輪只需要比較前兩個元素。 4 (比較2和1,交換)
至此,排序結束。比較(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-1], R[ N]) ; 最大的元素會被移到R[N]上。 R[3], R[4]), ……. (R[N-2], R[N-1]);第二大元素會被移到R[N-1]上。 。 。 N-1輪比較;而最佳化實現,在數組已經排序好的情況下,會提前退出比較,減小了算法的時間複雜度。及程式碼相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver Mac版
視覺化網頁開發工具