算法笔记 - 快速排序

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);

你可能感兴趣的:(算法笔记 - 快速排序)