冒泡排序法:
顾名思义,如冒泡泡一样,每次将数组中最大的数冒出来
举例:
2,3,1.
第一次先将3冒出来,变成--------> 2,1,3
第二次再讲2冒出来,变成--------->1,2,3
至此 排序结束 结果为 1,2,3.
代码如下:
<?php$arr=array(10,57,12,45,78,32,65,94,14);
function maopao($arr)
{
//求出该数组的长度
$len=count($arr);
//最外层的for循环 控制需要冒泡的轮数
//让i=1,是为了内层的for循环中k的条件
for($i=1;$i<$len;$i++)
{ //该层循环用来控制每轮 冒出一个数 需要比较的次数
//第一轮时的数据为 $arr[$k=0]和$arr[$k+1=1]时比较,如果前面的数大于后面的数,那么两个数交换位置,大的数就在后面了,前面的数就在前面
//$k<$len-$i是因为至少内层for循环后返回外层继续循环,$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;
//采用一种更简单高级的方法
//list($array[$k+1], $array[$k]) = array($array[$k], $array[$k+1]);
}
}
return $arr;
}
//使用了数据格式化,方便清楚的看到数据
echo "<pre/>";