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

用php实现快速排序算法

2017-03-12 12:32 239 查看

用php实现快速排序算法

快速排序算法的原理主要是通过递归的思路来进行排序,我上网查过很多phper的程序发现都不是很清晰,现将代码贴出,供大家参考。

<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/03/2017
* Time: 10:53
*/

/*
* 1.快速排序法
* 原理见:https://www.oschina.net/question/1397765_159365
*/

function quickSort($arr){
if (count($arr) > 1){
//从数组中选出一个"基准"
$k = $arr[0];
$x = array();
$y = array();
$size = count($arr);
for ($i = 1; $i < $size; $i++){
if ($arr[$i] <= $k){
$x[] = $arr[$i];
}elseif($arr[$i] > $k){
$y[] = $arr[$i];
}
}

//使用递归算法,在$arr有两个值以上时调用quickSort()
$x = quickSort($x);
$y = quickSort($y);

//将"基准"和递归的两个数组进行合并
return array_merge($x, array($k), $y);

}else{
return $arr;
}
}

$arr = [13, 25, 109, 1, 11, 98];
$res = quickSort($arr);
var_dump($res);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息