1.定义一个基准点,以基准点为标准 进行查找替换
2.定义i j 变量循环查找 i从左到右查找比基准点大的值 j从右到左查找比基准点小的值,直到i = j 结束循环
3.找到结果替换 再将基准点跟相遇的值交换 完成第一次查找替换
4.开始分治查找 除基准点 左右各执行上述查找过程
$old_array = [6,1,2,7,9,4,5,10,8];
function qicksort(&$array,$left,$right){
if($left > $right)
{
return;
}
$temp = $array[$left];
$t = [];
$i = $left;
$j = $right;
while($i!=$j)
{
while($array[$j] >= $temp&&$i<$j)
{
$j--;
}
while($array[$i] <= $temp&&$i<$j)
{
$i++;
}
if($i<$j)
{
$t = $array[$i];
$array[$i] = $array[$j];
$array[$j] = $t;
}
}
$array[$left] = $array[$i];
$array[$i] = $temp;
qicksort($array,$left,$i-1);
qicksort($array,$i+1,$right);
}
qicksort($old_array,0,count($old_array) - 1);