在我們剛學編程就知道各種排序算法,現在我們再次看看php 冒泡算法在實際應用中用法吧,有需要的朋友簡單的參考一下。 代碼如下 復制代碼
<?php
header('Content-Type: text/html; charset=utf-8');
// 簡單冒泡算法 0 1 2 3 4
$a = array(5,4,3,2,1); //5
echo "比較54321 <br /><hr />";
function mp($a){ //傳值 要是數組
//i=1 i<5 i++
for($i=0;$i<count($a);$i++){
/* j=3 j<i j--
* 這裡為什麼要-2呢
* 因為數組是從0開始的 所以要-1
* 然後 一會要比較後一位 和倒數第二位 所以 要-2
* 當然 -1 也可以 只要把 $a[j+1]改成$a[j] 然後把$a[j] 改成$a[j-1] 即可
*/
for ($j=count($a)-2;$j>=$i;$j--){
//判斷數組最大的位數 和第二大的相比
if ($a[$j+1]<$a[$j]){
echo $a[$j+1],'------小於-----',$a[$j],'----------排列前:',fn($a);
//如果最大的小於第二大的就換位置
$tmp = $a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
echo '------------排列後:',fn($a),'<br><hr>';
}
}
}
return $a;
}
echo fn(mp($a));
function fn($arr){
foreach ($arr as $value){
echo $value;
}
}
?>