php算法之冒泡排序

来源:互联网 发布:4399飞机刷枪软件 编辑:程序博客网 时间:2024/05/21 15:33
思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。
    比如:2,4,1    // 第一次 冒出的泡是4
    2,1,4   // 第二次 冒出的泡是 2
    1,2,4   // 最后就变成这样

    通过循环套循环
    实现里面的循环比外面循环少一次
    思路:相邻的俩数相比较,大的向后挪动一位
    每次循环 数组最后一位为最大值

    每次循环冒出一个数 最大值

代码:

<?php header('content-type:text/html;charset=utf8 ');$arr=array(50,2,45,12,46,47,23,40,15,60,39,67,80,34);function getpao($arr){ $len=count($arr);//设置一个空数组 用来接收冒出来的泡//该层循环控制 需要冒泡的轮数for($i=1;$i<$len;$i++){ //该层循环用来控制每轮 冒出一个数 需要比较的次数for($k=0;$k<$len-$i;$k++){if($arr[$k]>$arr[$k+1]){$tmp=$arr[$k+1];$arr[$k+1]=$arr[$k];$arr[$k]=$tmp;}}}return $arr;}//打印数组 print_r(getpao($arr)); ?>

数组打印结果为:

Array(    [0] => 2    [1] => 12    [2] => 15    [3] => 23    [4] => 34    [5] => 39    [6] => 40    [7] => 45    [8] => 46    [9] => 47    [10] => 50    [11] => 60    [12] => 67    [13] => 80)


0 0
原创粉丝点击