php 数组冒泡排序的思想和代码实现

目录

 

排序思想:

代码实现:

1、升序排序(从小到大排序)

基本代码:

 最终效果:

 

2、降序排序(从大到小排序)

基本代码:

 最终效果:

总结:


排序思想:

在冒泡排序过程中,按照从小到大或者从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。最终实现冒泡排序。

代码实现:

1、升序排序(从小到大排序)

将数组 [ 78,2,27,5,34,31,98,45 ] 进行升序排序(从小到大排序)

基本代码:

<?php

//申明数组
$array = [78,2,27,5,34,31,98,45];

//申明函数
function bubble($arr){
    //外层循环控制需要比较的轮数(控制比较的轮数)
    for($i=1;$i<count($arr);$i++){
        //内层循环参与比较的元素
        for($j=0;$j<count($arr)-1;$j++){
            //比较相邻的两个元素
            if($arr[$j] > $arr[$j+1]){
                $temp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $temp;
            }
        }
    }

    return $arr;
}

//调用函数,并输出
echo "<pre>";
print_r(bubble($array));

 最终效果:

 

2、降序排序(从大到小排序)

将数组 [ 78,2,27,5,34,31,98,45 ] 进行升序排序(从大到小排序)

基本代码:

<?php

//申明数组
$array = [78,2,27,5,34,31,98,45];

//申明函数
function bubble($arr){
    //外层循环控制需要比较的轮数(控制比较的轮数)
    for($i=1;$i<count($arr);$i++){
        //内层循环参与比较的元素
        for($j=0;$j<count($arr)-1;$j++){
            //比较相邻的两个元素
            if($arr[$j] < $arr[$j+1]){
                $temp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $temp;
            }
        }
    }

    return $arr;
}

//调用函数,并输出
echo "<pre>";
print_r(bubble($array));

 最终效果:

 

 

总结:

升序和降序排序的关键在于 比较相邻的两个元素,“<”   ">"

升序:

降序:

 

     如有测试出现异同,可留言一块解决

猜你喜欢

转载自blog.csdn.net/qq_43269730/article/details/89182408