您的位置:首页 > 其它

快速排序

2018-03-12 16:26 169 查看
/**
*快速排序
*/

$array = array(4,3,1,2,7,5,6);

function QuickSort($arr)
{

//终结条件
//判断当前数组是否需要排序
if(count($arr)<=1)
{
//不需要排序了 直接返回值就行了 
return $arr;
}
//下面进行排序 定义标尺
$num = $arr[0];
//定义两个数组
$left_array = []; //左边数组
$right_array = []; //右边数组
//循环
for($i = 1;$i<count($arr);$i++)
{
if($num>$arr[$i])
{
$left_array[] = $arr[$i]; //比当前数大的放在右边
}
else
{
$right_array[] = $arr[$i]; //比当前数小的放在左边
}
}
// //递归思想
$left_array = QuickSort($left_array);
$right_array = QuickSort($right_array);
// return $right_array;

return array_merge($left_array,array($num),$right_array);

}

//时间复杂度
//O(n²)
//需要排序的数组
$array = array(4,3,1,2,7,5,6);
//调用递归
print_r(QuickSort($array));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: