您的位置:首页 > 编程语言 > PHP开发

PHP实现的快速排序

2012-11-26 20:36 399 查看
<?php
function quickSort(&$array, $left, $right){
if ($left >= $right){
return ;
}
$pivot = $array[$left]; //选择比较元素
$array[$left] = $array[$right];
$array[$right] = $pivot; //比较元素移至数组末尾
$storeIdx = $left;
for ($i = $left; $i < $right; $i++){ //找到比较元素合适的位置
if ($array[$i] < $pivot){//小于比较元素的元素移至数组左边,大于比较元素的元素移至数组右边
$tmp = $array[$storeIdx];
$array[$storeIdx] = $array[$i];
$array[$i] = $tmp;
$storeIdx++;
}
}
$tmp = $array[$storeIdx];
$array[$storeIdx] = $pivot; //比较元素插入合适位置
$array[$right] = $tmp;
quickSort($array, $left, $storeIdx-1); //比较左边部分
quickSort($array, $storeIdx+1, $right); //比较右边部分
}
$arr = array(1,4,2,1,78,100,3,2,900,1,10);
quickSort($arr,0,count($arr)-1);
var_dump($arr);
?>


Wiki:http://en.wikipedia.org/wiki/Quicksort
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: