//冒泡排序(数组中实现)
function bubble_sort($arr) {
$cnt = count($arr);
if($cnt<=0) return false;
for($i=0; $i
for($j=$cnt-1; $j>$i;$j--) {
if($arr[$j]
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1]=$tmp;
}
}
}
return $arr;
}
//快速排序(数组排序)
function quicksort($arr) {
if(count($arr)<=1) return $arr;
$key = $arr[0];
$left_arr = array();
$right_arr = array();//新建一个数组
for($i=1; $i
if($arr[$i]
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = quicksort($left_arr);
$right_arr = quicksort($right_arr);
return array_merge($left_arr,array($key),$right_arr);
}
for($i=0;$i<10000;$i++) {//测试数组
$arr1[$i] = rand(0,10000);
}
$time_start = explode(" ",microtime());
bubble_sort($arr1);
$time_end = explode(" ", microtime());
echo "冒泡排序法所需要的时间:";
echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."
";//测试冒泡排序法所需要的时间
echo '----------------------------------'.'
';
$time_start = explode(" ",microtime());
quicksort($arr1);
$time_end = explode(" ", microtime());
echo "快速排序法所需要的时间:";
echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."
";//测试快速排序法所需要的时间
echo '-------------------------------------'."
";
$time_start = explode(" ",microtime());
sort($arr1);//php内置对数组排序函数
$time_end = explode(" ", microtime());
echo "PHP内置函数排序法所需要的时间:";
echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."
";//测试PHP内置函数排序法所需要的时间
测试结果:
冒泡排序法所需要的时间:22.864297151566
----------------------------------
快速排序法所需要的时间:0.22899389266968
-------------------------------------
PHP内置函数排序法所需要的时间:0.037806987762451