Blog
It's a Wonderful Life
快速排序算法
由于使用到了递归,快速排序算法时间复杂度为O(nlogn),这意味着只有加倍数组的长度才会增加运算时间,相较于冒泡排序要快很多。冒泡排序算法由于要对整个数组进行两次遍历,所以它的时间复杂度为O(n^2)。
以下是快速排序算法的代码实现。
<?php
function quick_sort($array)
{
if (count($array) <= 1) return $array;
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i<count($array); $i++)
{
if ($array[$i] <= $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}