1.冒泡排序
function m_sort($arr)
{
$l = count($arr);
if($l==0) return false;
for($i=0;$i<$l-1;$i++)
{
for($j=$i+1;$j<$l-1;$j++)
{
if($arr[$i]>$arr[$j])
{
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[j] = $temp;
}
}
}
return $arr;
}
2.插入排序
function i_sort($arr)
{
$l = count($arr);
if($l==0) return false;
for($i=1;$i<$l;$i++)
{
$t = $arr[i];
for($j=$i-1;$arr[j]>$t&&$j>=0;$--)
{
$arr[j+1] = $arr[j];
}
$arr[j+1] =$t;
}
return $arr;
}
3.选择排序
function select_sort($arr)
{
$len = count($arr);
if($len <= 0) return false;
for($i=0; $i<$len; $i++)
{
$min = $i;
for($j=$i+1; $j<$len; $j++) //记录剩下中最小那的
{
if($arr[$j]<$arr[$min]) $min = $j;
}
if($min != $i) //把当前数与该最小数交换
{
$temp = $arr[$min];
$arr[$min] = $arr[$i];
$arr[$i] = $temp;
}
}
return $arr;
}
4.快速排序
function quick_sort($arr)
{
$len = count($arr);
if($len <= 1) return $arr;
$mid = $arr[0]; //以此数为基准拆分为两个数组
$l = $r = array();
for($i=1; $i<$len; $i++)
{
if($arr[$i]<$mid) $l[] = $arr[$i];
else $r[] = $arr[$i];
}
$l = quick_sort($l);
$r = quick_sort($r);
return array_merge($l, array($mid), $r);
}
转载:http://blog.csdn.net/linvo/archive/2009/02/16/3893721.aspx