PHP 冒泡原理

header('Content-Type: text/html; charset=utf-8');
    //  简单冒泡算法 
    $a = array(5,43,3,2,1);  
    
    
    function  mp($a){  
        $len=count($a);
        //传值 要是数组 
        
        for($i=0;$i<$len;$i++){  
        /*
     *
最多做n-1趟排序 * i=0 i<5 i++ * 这里为什么要-2呢 * 因为数组是从0开始的 所以要-1 * 然后 一比较最后一位 和倒数第二位 * 这是从最后开始与前面的比较 */ for ($j=$len-1;$j>=$i;$j--){
       // j=4 j<i j--
//这里$j>=$i的原因是:每个数都要进行冒泡运算,匹配之后,运行次数逐渐减少. //判断数组最大的位数 和第二大的相比 if ($a[$j]<$a[$j-1]){ echo $a[$j],'------小于-----',$a[$j-1],'----------排列前:',fnsort($a); //如果最大位数的小于第二大位数的就换位置 $tmp = $a[$j]; $a[$j]=$a[$j-1]; $a[$j-1]=$tmp; echo '------------排列后:',fnsort($a),'<br><hr>'; } } } return $a; } echo fnsort(mp($a)); function fnsort($arr){ foreach($arr as $value){ echo $value .','; } }
原文地址:https://www.cnblogs.com/wicub/p/3210979.html