黑马程序员技术交流社区

标题: 冒泡排序PHP写法 [打印本页]

作者: 董事长    时间: 2016-11-14 16:27
标题: 冒泡排序PHP写法
<?php
/* 1. 冒泡排序法
*     思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。
*     比如:2,4,1    // 第一次 冒出的泡是4
*                2,1,4   // 第二次 冒出的泡是 2
*                1,2,4   // 最后就变成这样
*/
        $arr=array(1,43,54,62,21,66,32,78,36,76,39);
        function getpao($arr){
                $len=count($arr);
                //设置一个空数组 用来接收冒出来的泡
                //该层循环控制 需要冒泡的轮数
                for($i=1;$i<$len;$i++){ //该层循环用来控制每轮 冒出一个数 需要比较的次数
                        for($k=0;$k<$len-$i;$k++){
                                if($arr[$k]>$arr[$k+1]){
                                $tmp=$arr[$k+1];
                                        $arr[$k+1]=$arr[$k];
                                        $arr[$k]=$tmp;
                                }
                        }
                }
        return $arr;
        }
        $bubble = getpao($arr);
        echo "<pre>";
        var_dump($bubble);
作者: mfsara    时间: 2016-11-17 08:14
$arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588);
$n =count($arr);
//echo $n;
for($h=0;$h<$n-1;$h++){//外层循环n-1
for($i=0;$i<$n-$h-1;$i++){  
if($arr[$i]>$arr[$i+1]){//判断数组大小,颠倒位置
  $kong=$arr[$i+1];  
$arr[$i+1]=$arr[$i];
  $arr[$i]=$kong;
     }
  }
}
var_dump($arr);





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2