PHP的冒泡算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?php
function maopao($arr){ for($i = count($arr)-1; $i>0; $i--){ $flag = 0; for($j = 0; $j < $i; $j++){ if($arr[$j]>$arr[$j+1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] =$temp; $flag = 1; } } if($flag == 0){ break; } } return $arr; } $arr=array(30,40,10,50,20,60); print_r(maopao($arr)); ?>
|
print:
1 2 3 4 5 6 7 8 9 10 11 12
| Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 [4] => 50 [5] => 60 )
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位,
|