在先前的文章《PHP數組學習之返回給定兩數組的全部公因數和最大公因數》中,我們介紹了利用數組方法返回給定兩個整數a和b間的全部公因數和最大公因數的方法。這次我們進行PHP陣列的學習,介紹利用PHP如何實現冒泡排序,使用冒泡演算法怎麼對陣列元素進行升序排序。
首先我們來了解什麼是冒泡演算法(冒泡排序)?
冒泡排序(Bubble Sort),是因為越小的元素會經由交換慢慢「浮」到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最後會上浮到頂端一樣,故名「冒泡排序」。
思想:
比較相鄰的兩個元素,如果滿足條件(第一個比第二個大,或第一個比第二個小),就交換,否則不動。
再比較接下來的兩個相鄰的元素,然後滿足條件就交換,否則依然不動。
就這樣對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。直到最後的元素應該會是最大(最小)的數。
依序循環操作下去,最終一個元素,會固定在最下邊。
我們使用冒泡演算法對陣列元素進行升序排序:
#有這樣一個陣列:
$arr = array('23','4','0','3','2','24','20');
陣列有7個元素,因為是實現升序排序,即從小到大排序,因此執行步驟:
第一輪循環:
第一個元素23和第二個元素4比,因為23大於4,因此執行交換操作
第二個元素(此時為23)和第三個元素0比較,因為23大於0,因此執行交換操作---23就變成第三元素
第三個元素(此時為23)和第四個元素3比,還是大於,執行交換操作--- 23就變成第四元素
第四個元素(此時為23)和第五個元素2比,還是大於,執行交換運算---23就變成第五元素
第五個元素(此時為23)和第六個元素24比,因為23小於24,因此不執行交換操作--第六個元素還是24
第六個元素(此時為24)和第七個元素20比,因為24大於200,執行交換運算---24就變成第七元素
經過一輪的循環對比,最大的數字就下沉到最下邊了。小的數字逐漸向上浮出。
此時陣列元素為:4、0、3、2、23、20、24
第二輪循環:
第一個元素4和第二個元素0比,因為4大於0,因此執行交換操作---4就變成第二元素
第二個元素(此時為4)和第三個元素3比較,因為4大於3,因此執行交換操作---4就變成第三元素
第三個元素(此時為4 )和第四個元素2比,還是大於,執行交換操作---4就變成第四元素
第四個元素(此時為4)和第五個元素23比,因為4小於23,因此不執行交換操作---第五元素還是23
第五個元素(此時為23)與第六個元素20比,因為23大於20,執行交換操作--23就變成第六元素
第六個元素(此時為23)與第七個元素24比,小於,因此不執行交換操作--第七個元素還是24
此時陣列元素為:0、3、2、4、20、23、24
.....
以此類推,最後數組元素為:0、2、3、4、20、23、24
我們來看看實作方法:
$arr[$j+1]) { $data = $arr[$i]; $arr[$i] = $arr[$j+1]; $arr[$j+1] = $data; } } } return $arr; } echo ""; print_r(BubbleSort($arr));登入後複製
輸出結果:
好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學
最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!
以上是PHP陣列學習之使用冒泡演算法對元素進行升序排序!的詳細內容。更多資訊請關注PHP中文網其他相關文章!