PHP学习笔记——冒泡(起泡)排序算法

<?php
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)

        for($j=0;$j<count($arr);$j++){ // 用for循环,当$j赋值等于0时,$j的长度小于$arr数组长度,$j自增;
                if($arr[$j] < $arr[$j+1]){ // 如果数组中的$j小于数组的$j+1
                        $tmp = $arr[$j]; // 假设把第一次循环放在临时变量$tmp里;

                        $arr[$j] = $arr[$j+1]; // 让第一个变量赋值于第二个变量;
                        $arr[$j+1] = $tmp; // 让第二个变量赋值于临时变量;
                }
                echo $arr[$j]."&nbsp:"; // 输出循环之后每一次的值,"&nbsp:"空给站位置
        }
        echo '<br>';

 

<?php
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)

        for($j=0;$j<count($arr)-1;$j++){ // 这样数组下标就没有越界了,需要循环9次,但$j++就是循环了10次所以要count($arr)-1;
                if($arr[$j] < $arr[$j+1]){ // 如果数组中的$j小于数组的$j+1
                        $tmp = $arr[$j]; // 假设把第一次循环放在临时变量$tmp里;

                        $arr[$j] = $arr[$j+1]; // 让第一个变量赋值于第二个变量;
                        $arr[$j+1] = $tmp; // 让第二个变量赋值于临时变量;
                }
                echo $arr[$j]."&nbsp:"; // 输出循环之后每一次的值,"&nbsp:"空给站位置
        }
        echo '<br>';

 

<?php
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)

        for($j=0;$j<count($arr)-1;$j++){ // 这样数组下标就没有越界了,需要循环9次,但$j++就是循环了10次所以要count($arr)-1;
                if($arr[$j] < $arr[$j+1]){ // 如果数组中的$j小于数组的$j+1
                        $tmp = $arr[$j]; // 假设把第一次循环放在临时变量$tmp里;

                        $arr[$j] = $arr[$j+1]; // 让第一个变量赋值于第二个变量;
                        $arr[$j+1] = $tmp; // 让第二个变量赋值于临时变量;
                }
                echo $arr[$j]."&nbsp:"; // 输出循环之后每一次的值,"&nbsp:"空给站位置
        }
        echo '<br>';
        print_r($arr);

<?php
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)

        for($j=0;$j<count($arr)-1;$j++){ // 这样数组下标就没有越界了,需要循环9次,但$j++就是循环了10次所以要count($arr)-1;
            if($arr[$j] < $arr[$j+1]){ // 如果数组中的$j小于数组的$j+1
                $tmp = $arr[$j]; // 假设把第一次循环放在临时变量$tmp里;

                $arr[$j] = $arr[$j+1]; // 让第一个变量赋值于第二个变量;
                $arr[$j+1] = $tmp; // 让第二个变量赋值于临时变量;
            }
            echo $arr[$j]."&nbsp:"; // 输出循环之后每一次的值,"&nbsp:"空给站位置
        }
        echo '<br>';
        print_r($arr);

        echo '<br>';
        for($j=0;$j<count($arr)-1;$j++){
            if($arr[$j] < $arr[$j+1]){
                $tmp = $arr[$j];

                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
            echo $arr[$j]."&nbsp:";
        }
        echo '<br>';
        print_r($arr); // 循环在执行一次;

<?php
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)
    for($i=0;$i<count($arr);$i++){ // 只要在嵌套一层for循环,就不用一次一次在重复写了!
        for($j=0;$j<count($arr)-1;$j++){
        if($arr[$j] < $arr[$j+1]){
            $tmp = $arr[$j];

            $arr[$j] = $arr[$j+1];
            $arr[$j+1] = $tmp;
        }
        echo $arr[$j]."&nbsp:"; 
    }
        echo '<br>';
        print_r($arr);
    }


<?php
        header("Content-type: text/html; charset=utf-8");
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)
    for($i=0;$i<count($arr)-1;$i++){ // 只要在嵌套一层for循环,就不用一次一次在重复写了!数组长度减一
        for($j=0;$j<count($arr)-1;$j++){
            if($arr[$j] < $arr[$j+1]){
                $tmp = $arr[$j];

                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
            echo $arr[$j]."&nbsp:";
        }
        echo '<br>';
        print_r($arr);
    }


 

<?php
        header("Content-type: text/html; charset=utf-8");
        $arr = array(1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)
    $len = count($arr); // 用$len代替count($arr)长度
    for($i=0;$i<$len-$i-1;$i++){ // $i表示次数,长度减去次数每次的循环就减少;
        for($j=0;$j<count($arr)-1;$j++){
            if($arr[$j] < $arr[$j+1]){
                $tmp = $arr[$j];

                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
            echo $arr[$j]."&nbsp:";
        }
        echo '<br>';
        print_r($arr);
    }


 

<?php
        header("Content-type: text/html; charset=utf-8");
        $arr = array(1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)
function mysort($arr){ // 用mysort这个函数来表示这个循环;
    $len = count($arr); // 用$len代替count($arr)长度
    for($i=0;$i<$len-$i-1;$i++){ // $i表示次数,长度减去次数每次的循环就减少;
        for($j=0;$j<count($arr)-1;$j++){
            if($arr[$j] < $arr[$j+1]){
                $tmp = $arr[$j];

                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
            echo $arr[$j]."&nbsp:";
        }
    }
            return $arr; // 返回原数组
}
print_r($arr); // 打印原数组
echo '<br>';
print_r(mysort($arr)); // 打印排序好的数组



<?php
        header("Content-type: text/html; charset=utf-8");
        $arr = array(1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)
function mysort(&$arr){ // mysort和$arr中间加"&"符,对原数组发生改变;
    $len = count($arr); // 用$len代替count($arr)长度
    for($i=0;$i<$len-$i-1;$i++){ // $i表示次数,长度减去次数每次的循环就减少;
        for($j=0;$j<$len-$i-1;$j++){
            if($arr[$j] < $arr[$j+1]){
                $tmp = $arr[$j];

                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
            echo $arr[$j]."&nbsp:";
        }
    }
}
mysort($arr); // 里面数组改变,外面数组也改变
print_r($arr);



<?php
        header("Content-type: text/html; charset=utf-8");
        $arr = array(0,1,2,3,4,5,6,7,8,9); // 把他们排列成降序(9,8,7,6,5,4,3,2,1,0)
function mysort(&$arr){ // mysort和$arr中间加"&"符,对原数组发生改变;
    $len = count($arr); // 用$len代替count($arr)长度
    for($i=0;$i<$len-$i-1;$i++){ // $i表示次数,长度减去次数每次的循环就减少;
        for($j=0;$j<$len-$i-1;$j++){ // 把这个数组变成从小到大"for($j=0;$j>$len-$i-1;$j++)"
            if($arr[$j] < $arr[$j+1]){
                $tmp = $arr[$j];

                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
            echo $arr[$j]."&nbsp:";
        }
    }
}
mysort($arr); // 里面数组改变,外面数组也改变
print_r($arr);



 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值