<?php
function show($arr){
foreach ($arr as $v) {
echo $v." ";
}
}
function quicksort(&$arr,$low,$high){
if($low>=$high){
return;
}
$first = $low;
$last = $high;
$key = $arr[$first];
while ( $first < $last) {
while( $first < $last && $arr[$last] >= $key){
--$last; //寻找右边第一个比key小的
}
$arr[$first] = $arr[$last];
while ( $first < $last && $arr[$first] <= $key) {
++$first; //寻找左边第一个比key大的
}
$arr[$last] = $arr[$first];
}
$arr[$first] = $key;
quicksort($arr,$low,$first-1);
quicksort($arr,$first+1,$high);
}
$arr = range(1,10);
shuffle($arr);
echo "排序之前:";
show($arr);
quicksort($arr,0,count($arr)-1);
echo "<br/>排序之后:";
show($arr);
PHP实现快速排序
最新推荐文章于 2024-10-18 23:38:36 发布
