简单的一个php 冒泡排序算法

在我们刚学编程就知道各种排序算法,现在我们再次看看php 冒泡算法在实际应用中用法吧,有需要的朋友简单的参考一下,代码如下:

  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3. // 简单冒泡算法 0 1 2 3 4
  4. $a = array(5,4,3,2,1); //5
  5. echo "比较54321 <br /><hr />";
  6. function mp($a){ //传值 要是数组
  7. //i=1 i<5 i++
  8. for($i=0;$i<count($a);$i++){
  9. /* j=3 j<i j--
  10. * 这里为什么要-2呢
  11. * 因为数组是从0开始的 所以要-1
  12. * 然后 一会要比较后一位 和倒数第二位 所以 要-2
  13. * 当然 -1 也可以 只要把 $a[j+1]改成$a[j] 然后把$a[j] 改成$a[j-1] 即可
  14. */
  15. for ($j=count($a)-2;$j>=$i;$j--){
  16. //判断数组最大的位数 和第二大的相比
  17. if ($a[$j+1]<$a[$j]){
  18. echo $a[$j+1],'------小于-----',$a[$j],'----------排列前:',fn($a);
  19. //如果最大的小于第二大的就换位置
  20. $tmp = $a[$j+1];
  21. $a[$j+1]=$a[$j];
  22. $a[$j]=$tmp;
  23. echo '------------排列后:',fn($a),'<br><hr>';
  24. }
  25. }
  26. }
  27. return $a;
  28. }
  29. echo fn(mp($a));
  30. function fn($arr){
  31. foreach ($arr as $value){
  32. echo $value;
  33. }
  34. }
  35. ?>