冒泡排序

<?php 
// print_r($_SERVER);
// print_r($_REQUEST);
// print_r($_ENV);
// 冒泡排序
$arr=array(5,-1,10);
// $temp=0;
    for($i=0;$i<count($arr)-1;$i++){
        // 定义一个变量$i=0;
        // $i=0;$i<(3-1);$i=1
        for($j=0;$j<count($arr)-1-$i;$j++){
            // $j=0;$j<(3-1-1);$j=1
            if($arr[$j]>$arr[$j+1]){
                // 5>-1?
                $temp=$arr[$j];
                // $temp=5
                $arr[$j]=$arr[$j+1];
                // $arr[1]=$arr[2] 将第二个值付给第一个值
                // 数组变为(-1,-1,10)
                var_dump($arr);
                // 完成替换
                $arr[$j+1]=$temp;
                // $arr[2]=$temp
                var_dump($arr);                
                // 完成排序
            }
        }
    }

    // 为了更好使用排序,我们将其封装成一个函数:代码如下 :
    function bubbleSort(&$myarr){    
        $temp=0;
        //这是一个中间变量
        //外层循环,我们要把数组,从小到大
     // 数组默认传递的是值,不是地址

        for($i=0;$i<count($myarr)-1;$i++){        
            for($j=0;$j<count($myarr)-1-$i;$j++){                
                //说明前面的数比后面的数大,就要交换                
                if($myarr[$j]>$myarr[$j+1]){                    
                    $temp=$myarr[$j];
                    $myarr[$j]=$myarr[$j+1];
                    $myarr[$j+1]=$temp;                    
                }
            }
        }
        echo "<br/>函数中的myarr数组";
        var_dump($myarr);
    }
    //使用函数去排序
    bubbleSort($arr);    
    //输出
    var_dump($arr);
?>    
 

  

原文地址:https://www.cnblogs.com/aten/p/8393271.html