<?php
set_time_limit(0);
function quickSort($arr) {
if (count($arr) > 1) { // 只判断
数组长度大于1的情况
$k = $arr[0]; // 默认参照对象为数组第一个对象
$x = array(); // 比参照小的
$y = array(); // 比参照大的
$_size = count($arr);
for ($i = 1; $i < $_size; $i++) {
if ($arr[$i] <= $k) {
$x[] = $arr[$i];
} else {
$y[] = $arr[$i];
}
}
// 分别对两侧数组进行递归排列
$x = quickSort($x);
$y = quickSort($y);
return array_merge($x, array($k), $y);
} else {
return $arr;
}
}
$test_array = array();
$n = 0;
//测试一个30万条的记录
while(++$n<=300000){
$test_array[$n] = $n;
}
echo 'Array init!<br/>';
shuffle($test_array); // 打乱顺序
echo 'Array shuffled<br/>';
echo date( 'Y-m-d H:m:s').'<br/>';
$res = quickSort($test_array);
echo date('Y-m-d H:m:s');
?>