1.定義一個(gè)基準(zhǔn)點(diǎn),以基準(zhǔn)點(diǎn)為標(biāo)準(zhǔn) 進(jìn)行查找替換
2.定義i j 變量循環(huán)查找 i從左到右查找比基準(zhǔn)點(diǎn)大的值 j從右到左查找比基準(zhǔn)點(diǎn)小的值,直到i = j 結(jié)束循環(huán)
3.找到結(jié)果替換 再將基準(zhǔn)點(diǎn)跟相遇的值交換 完成第一次查找替換
4.開(kāi)始分治查找 除基準(zhǔn)點(diǎn) 左右各執(zhí)行上述查找過(guò)程
$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);