Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@wangshijun
Created August 31, 2012 13:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save wangshijun/3552889 to your computer and use it in GitHub Desktop.
Save wangshijun/3552889 to your computer and use it in GitHub Desktop.
php: quick sort algorithm implemented in php
<?php
$data = array(55,41,59,26,53,58,97,93);
quicksort(0, sizeof($data)-1);
function quicksort($lower, $upper) {
global $data;
if ($lower >= $upper) {
return;
}
$m = $lower;
echo str_repeat("=", 80), PHP_EOL;
// partition the array on $data[$lower]
for ($i=$lower+1; $i<=$upper; $i++) {
if ($data[$i] < $data[$lower]) {
$tmp = $data[++$m];
$data[$m] = $data[$i];
$data[$i] = $tmp;
print_array($data);
}
}
// swap the sential node with $data[$m]
$tmp = $data[$m];
$data[$m] = $data[$lower];
$data[$lower] = $tmp;
print_array($data);
// quick sort the tow parts recursively
quicksort($lower, $m-1);
quicksort($m+1, $upper);
}
function print_array($data, $newlineCount = 1) {
echo implode("->", $data), str_repeat(PHP_EOL, $newlineCount);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment