Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php实现快速排序(quick sort)的函数

php实现快速排序(quick sort)的函数

发布时间:2015-03-18   编辑:www.jquerycn.cn
php实现快速排序(quick sort)的函数

php写的快速排序(quick sort)函数,有需要的朋友可以参考下。
 

复制代码 代码如下:

<?php
/**
* 快速排序 quick sort
*
**/

function sort_quick($arrData) {
if(empty($arrData) || !is_array($arrData)) return false;

$flag = $arrData[0];
$len = count($arrData) - 1;
if($len == 0) return $arrData; // 如果只有一个数据的数组直接返回

$arrLeft = array();
$arrRight = array();
$len_l = 0;
$len_r = 0;
for($i = 1; $i <= $len;$i++) {
if($arrData[$i] < $flag) {
$arrLeft[$len_l] = $arrData[$i]; // 小于的放左边
$len_l++;
} else {
$arrRight[$len_r] = $arrData[$i]; // 大于等于的放右边
$len_r++;
}
}

// 合并数组
$arrResult = array();
if($len_l) {
$arrLeft = sort_quick($arrLeft);
for($i = 0;$i <= $len_l - 1; $i++ ) {
$arrResult[$i] = $arrLeft[$i];
}
}
$arrResult[$len_l] = $flag;
$len_l++;
if($len_r) {
$arrRight = sort_quick($arrRight);
for($i = 0;$i <= $len_r - 1; $i++ ) {
$arrResult[$len_l] = $arrRight[$i];
$len_l++;
}
}
echo "== ",$flag," --------------------------------<br/>";
echo "data : ",print_r($arrData),"<br/>";
echo "filter left: ",print_r($arrLeft),"<br/>";
echo "filter right: ",print_r($arrRight),"<br/>";
echo "return : ",print_r($arrResult),"<br/>";

return $arrResult;
}
//$list = array(4,3,2,1,5,7,3,7);
$list = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67);
$list = sort_quick($list);
echo "<pre>";print_r($list);
?>

您可能感兴趣的文章:
php实现快速排序(quick sort)的函数
php选择排序算法实现代码
php冒泡排序算法实现代码
php 数组排序(升序、降序及相关问题)
PHP数组排序方法总结(收藏)
php快速排序三种方法
php 实现冒泡排序的简单例子
php 冒泡排序的实现代码
PHP二维数组按照指定的字段排序的函数
C语言实现排序算法(冒泡,选择,快速)方法

关键词: php排序  快速排序   
[关闭]