php 冒泡法排序、快速排序 示例
冒泡法:
每个依次同其它数据比较,先选出最大(最小)的,再选第二大(小)的。
示例:
//冒泡排序
function maopao($arr)
{
$n = count($arr);
for($j=0;$j<$n-1;$j++)
{
for($i=$j+1;$i<=$n-1;$i++)
{
if($arr[$j]>$arr[$i])
{
$t = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j]=$t;
}
}
}
return $arr;
}
$arr = array(1,5,4,7,3,2);
print_r($arr);
快速排序:
通过一趟排序分成两部分,然后递归对这两部分排序,最后合并。
//快速排序
function quick($array)
{
if(count($array)<=1)
{
return $array;
}
$key = $array[0];
$l = array();
$r = array();
for($i=1;$i<count($array);$i++)
{
if ($array[$i]<=$key)
{
$l[] =$array[$i];
}
else
{
$r[] = $array[$i];
}
}
$l = quick($l);
$r = quick($r);
return array_merge($l,array($key),$r);
}
$array = array(2,5,3,4,1);
print_r(quick($array));











