PHP 排序算法集锦

冒泡法:
[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);
[/php]
快速排序:
[php]
//快速排序
function quick($array)
{
if(count($array)<=1)
{
return $array;
}
$key = $array[0];
$l = array();
$r = array();
for($i=1;$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));
[/php]

插入排序:(一维数组)
[php]
//插入排序
function insert_sort($arr){
$count = count($arr);
for($i=1; $i<$count; $i++){
$tmp = $arr[$i];
$j = $i – 1;
while($arr[$j] > $tmp){
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
$j–;
}
}
return $arr;
}
[/php]
选择排序(一维数组)
[php]
//选择排序
function select_sort($arr){
$count = count($arr);
for($i=0; $i<$count; $i++){
$k = $i;
for($j=$i+1; $j<$count; $j++){
if ($arr[$k] > $arr[$j])
$k = $j;
if ($k != $i){
$tmp = $arr[$i];
$arr[$i] = $arr[$k];
$arr[$k] = $tmp;
}
}
}
return $arr;
}
[/php]

发表评论

邮箱地址不会被公开。 必填项已用*标注