php入门-冒泡排序

①代码如下:

$arr=[6,66,22,55,79,43,12];
function bubbleSort(&$arr){
    $length=count($arr);
    for($i=1;$i<$length;$i++){
          for($j=0;$j<$length-$i;$j++){
              if($arr[$j]>$arr[$j+1]){
                  $temp=$arr[$j];
                  $arr[$j]=$arr[$j+1];
                  $arr[$j+1]=$temp;
              }
          }
    }
}
bubbleSort($arr);
print_r($arr);

打印结果如下:

Array ( [0] => 6 [1] => 12 [2] => 22 [3] => 43 [4] => 55 [5] => 66 [6] => 79 )

②代码如下:

$arr=[6,66,22,55,79,43,12];
function bubblingSort($arr){//使用引用传值的方法,改变数组的内容
    $checkPoint=0;//数组循环的次数
    while(true){//调用check方法,返回交换的次数
$swapCount=check($arr,$checkPoint);
$checkPoint++;
    if($swapCount<=0) {//没有交换时跳出循环,返回数组
        return $arr;
    }
    }
}
function check(&$arr,$checkPoint){//对数组进行检测,是否进行数据交换
     $swapCount=0;//循环数据,将数据替换//$i数组的总数
     for($i=count($arr)-1;$i>$checkPoint;$i--){
                if($arr[$i]<$arr[$i-1]){//比较二个数组中的二个数据
                    swap($arr,$i);//小于时数据交换调用swap方法
                    $swapCount++;//交换次数进行+1操作
                }

     }
    return $swapCount;//返回交换的次数
}
function swap(&$arr,$i){//数据交换
           $tem=$arr[$i];
           $arr[$i]=$arr[$i-1];
           $arr[$i-1]=$tem;

}
print_r(bubblingSort($arr));

打印结果如下:

Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 )
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果需要原文档(因文体限制,部分表格无法呈现)请联系QQ1769090563 本文由中医仲景协会整理收集 《内经选...
    陶墨阅读 35,013评论 0 33
  • 1、判断一个变量是否存在的函数:isset判断一个变量是否为null的函数:is_null判断一个变量是否为空的函...
    jianghu000阅读 5,672评论 1 4
  • 出门想要买点日用品,却发现店面没几家开着。出门坐车,总会遇堵。耳边时不时会传来或远或近的鞭炮声。真的,年将近。意识...
    右圆左方不两成阅读 1,150评论 0 2
  • 2012年2月,我开始参加工作,那时因为没有毕业,所以领的实习工资只有800块,跟朋友合租在一间350块钱的里,尽...
    七月风沙阅读 3,532评论 1 1
  • 文丨红瑀 【中篇小说】爱情曾来过(目录) 《爱情曾来过》(12)麦克勇示爱 晓雨吓了一下跳,连忙转头,真的是凯文!...
    红瑀阅读 3,161评论 16 31