12 11 2022
摘要:/** * 快速排序算法 * @param $data * @return array */ function quickSort(&$data) { $max = count($data) - 1; if ($max < 1) { return; } $head = 0; $tail = $max; $index = $max; $pivot = $data[0]; while ($head < $tail) { if ($data[$index] > $pivot) { $data[$tail] = $data[$index]; $tail--; $index = $tail; } else { $data[$head] = $data[$index]; $head++; $index = $head; } }

 

/**

* 快速排序算法

* @param $data

* @return array

*/

function quickSort(&$data) {

$max = count($data) - 1;

if ($max < 1) {

return;

}

$head = 0;

$tail = $max;

$index = $max;

$pivot = $data[0];

while ($head < $tail) {

if ($data[$index] > $pivot) {

$data[$tail] = $data[$index];

$tail--;

$index = $tail;

} else {

$data[$head] = $data[$index];

$head++;

$index = $head;

}

}

$data[$index] = $pivot;

$left = [];

for ($i = 0; $i < $index; $i++) {

$left[] = &$data[$i];

}

$right = [];

for ($i = $index + 1; $i <= $max; $i++) {

$right[] = &$data[$i];

}

quickSort($left);

quickSort($right);

}

$data = [];

for ($i = 0; $i < 100; $i++) {

$data[] = mt_rand(0, 1000);

}

quickSort($data);

foreach ($data as $item) {

printf("%s\t", $item);

}

echo "<br>\n";


延伸阅读
  1. 上一篇:
  2. 下一篇:
发表评论