以下是PHP数组快速排序原代码:
<?php
/**
* 快速排序
*/
function quick_sort($array)
{
$len = count($array);
if($len <= 1)
{
return $array;
}
$left_array = array();
$right_array = array();
$key = $array[0];
for($i=1; $i<$len; $i++)
{
if($key < $array[$i])
{
$right_array[] = $array[$i];
}else
{
$left_array[]=$array[$i];
}
$first_array = array_merge($left_array, array($key), $right_array);
}
return $first_array;
}
$just = array(49,38,97,76,13,27);
for($j=0; $j<6;$j++)
{
static $array1 ;
static $array;
$array1 = quick_sort($just);
$array = quick_sort($array1);
}
print_r($array);
PHP,递归快排 function quick_sort($arr)
{
_quick_sort($arr, 0, (count($arr)-1));
return $arr;
}
function _quick_sort(&$arr, $i, $j)
{
$pivot = $arr[$i];
$_i = $i;
$_j = $j;
while($i<$j)
{
while($arr[$j]>=$pivot && $i<$j) $j--;
if($i<$j)
{
$arr[$i] = $arr[$j];
$i++;
}
while($arr[$i]<=$pivot && $i<$j) $i++;
if($i<$j)
{
$arr[$j] = $arr[$i];
$j--;
}
}
$arr[$i]=$pivot;
if($_i<$i-1)
{
_quick_sort($arr, $_i, $i-1);
}
if($_j>$i+1)
{
_quick_sort($arr, $i+1, $_j);
}
}
?>