基本概念
氣泡排序的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1 個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再大於第2個數),將小數放前,大數放後,一直比較到最小數前的一對相鄰數,將小數放前,大數放後,第二趟結束,在倒數第二個數中得到乙個新的最小數。如此下去,直至最終完成排序。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。
用二重迴圈實現,外迴圈變數設為i,內迴圈變數設為j。外迴圈重複9次,內迴圈依次重複 9,8,…,1次。每次進行比較的兩個元素都是與內迴圈j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,…,9,對於每乙個i, j的值依次為1,2,…10-i。
產生
在許多程式設計中,我們需要將乙個數列進行排序,以方便統計,常見的排序方法有氣泡排序,二叉樹排序,選擇排序等等。而氣泡排序一直由於其簡潔的思想方法和比較高的效率而倍受青睞。
排序過程
設想被排序的陣列r[1..n]垂直豎立,將每個資料元素看作有重量的氣泡,根據輕氣泡不能在重氣泡之下的原則,從下往上掃瞄陣列r,凡掃瞄到違反本原則的輕氣泡,就使其向上」漂浮」,如此反覆進行,直至最後任何兩個氣泡都是輕者在上,重者在下為止。
排序實現過程如下:
49 38 65 97 76 13 27
38 49 65 97 76 13 27 比較第1個和第2個數,小的放前邊,大的放後邊 38 49 65 97 76 13 27 比較第2個和第3個數,小的放前邊,大的放後邊 38 49 65 97 76 13 27 比較第3個和第4個數,小的放前邊,大的放後邊 38 49 65 76 97 13 27 比較第4個和第5個數,小的放前邊,大的放後邊 38 49 65 76 13 97 27 比較第5個和第6個數,小的放前邊,大的放後邊 38 49 65 76 13 27 97 比較第6個和第7個數,小的放前邊,大的放後邊 至此,第一趟比較結束,得到以下排序: 38 49 65 76 13 27 97
然後按照第一趟排序的方法繼續比較,直到完成排序。
$arr = array(345,4,17,6,52,16,58,69,32,8,234);for($i=1;$i
} }
PHP 氣泡排序演算法
演算法說明 氣泡排序大概的意思是依次比較相鄰的兩個數,然後根據大小做出排序,直至最後兩位數。由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。但其實在實際過程中也可以根據自己需要反過來用,大樹往前放,小數往後放。示例 從小到大 說明 從大到小的話,就把if判斷那裡的大...
php排序演算法之氣泡排序
一 原理 二 舉例說明 三 php 實現氣泡排序 對一組資料,比較相鄰資料的大小,將值小資料在前面,值大的資料放在後面。以下都是公升序排列,即從小到大排列 arr array 6,3,8,2,9,1 arr 有6個資料,按照兩兩比較大小如下,注意比較輪數 和 每輪比較次數 第一輪排序 第一輪比較總結...
PHP排序演算法之氣泡排序
一 氣泡排序 原理 對一組資料,比較相鄰資料的大小,將值小資料在前面,值大的資料放在後面。以下都是公升序排列,即從小到大排列 舉例說明 arr array 6,3,8,2,9,1 arr 有6個資料,按照兩兩比較大小如下,注意 比較輪數 和 每輪比較次數 第一輪排序 第一次比較 6和3比較 結果 3...