php算法之冒泡排序

思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。
    比如: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
)


你可能感兴趣的:(php算法之冒泡排序)