php 常用的排序冒泡和遞迴排序演算法代碼
冒泡排序演算法
function bubblesort($arr)
{
$n=count($arr);
for($i=0;$i<$n;$i++)
{
for($j=$i;$j<=$n-1;$j++)
{
if($arr[$i]>$arr[$j])
{
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp;
}
}
}
return $arr;
}
//直接插入排序
function insertsort($arr)
{
$n=count($arr);
& nbsp; for($i=1;$i<$n;++$i)
{
if($arr[$i]<$arr[$i-1])
{
$tmp=$arr[$i];
$j=0;
for($j=$i-1;$j>=0&&$tmp<$arr[$j];--$j)
{
$arr[$j+1]=$arr[$j];
}
$arr[$j+1]=$tmp;
}
}
return $arr;
}簡單排序演算法
function sim plesort($arr)
{
$tmp=0;
$t=0;
$n=count($arr);
for($i=0;$i<$n;+ +$i)
{
$t=$i;
for($j=$i+1;$j<$n;++$j)
{
if($arr[$t]>$arr[$j])
{
$t=$j;
}
}
$tmp=$arr[$i];
$arr[$i]=$arr[$t];
$arr[$t]=$tmp;
}
return $arr;
}快速排序演算法
f unction qsort($array)
{
$n=count($array);
if($n<=1){return $array;}
$key=$array[0];
$l=array();
$r=array();
分別進行遞迴排序,然後合成一個陣列
for($i=1;$i<$n;$i++)
{
if($array[$i]<=$key)
{
$l[]=$array[$i];
}
else
{
$r[]=$array[$i];
}
}
$l=qsort($l);
$r=qsort($r);
return array_merge($l,array($key),$r);
}