您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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
我們看看實現方法:
<?php //定義一個數組 $arr = array('23','4','0','3','2','24','20'); function BubbleSort(array $arr) { for ($i=0 ; $i <count($arr) ; $i++) { //設置一個空變量 $data = ''; for ($j=$i ; $j < count($arr)-1 ; $j++) { if ($arr[$i] > $arr[$j+1]) { $data = $arr[$i]; $arr[$i] = $arr[$j+1]; $arr[$j+1] = $data; } } } return $arr; } echo "<pre>"; print_r(BubbleSort($arr));
輸出結果:
以上是“PHP中如何使用冒泡算法對元素進行升序排序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。