php冒泡排序實現方法,傳入幾個數字排序后 輸出實戰例子
算法和數據結構是一個編程工作人員的內功。
四種入門級排序算法: 冒泡排序、選擇排序、插入排序、快速排序。
一、冒泡排序
原理:對一組數據,比較相鄰數據的大小,將值小數據在前面,值大的數據放在后面。 (以下都是升序排列,即從小到大排列)
舉例說明: $arr = array(6, 3, 8, 2, 9, 1);
$arr 有6個數據,按照兩兩比較大小如下,注意 比較輪數 和 每輪比較次數
第一輪排序:
第一次比較 6和3比較 結果:3 6 8 2 9 1
第二次比較 6和3比較 結果:3 6 8 2 9 1
第三次比較 8和2比較 結果:3 6 2 8 9 1
第四次比較 8和9比較 結果:3 6 2 8 9 1
第五次比較 9和1比較 結果:3 6 2 8 1 9
第一輪比較總結:1.排序第1輪、比較5次,沒有獲得從小到大的排序
function orderArray($arr) { $count = count($arr); $temp = 0; // 外層控制排序輪次 for ($i = 0; $i < $count - 1; $i ++) { // 內層控制每輪比較次數 for ($j = 0; $j < $count - 1 - $i; $j ++) { if ($arr[$j] > $arr[$j + 1]) { $temp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; } } } return $arr; } function orderNumber($a1,$a2,$a3,$a4) { $arr = array($a1,$a2,$a3,$a4); $rs = orderArray($arr); echo '<b>'.$rs[0].$rs[1].$rs[2].$rs[3].'</b>'; }
<?=orderNumber(2,9,5,3) ?>