php数据结构与算法(PHP描述) 快速排序 quick sort
更新时间:2012年06月21日 06:38:30 作者:
php数据结构与算法(PHP描述) 快速排序 quick sort,学习php的朋友可以参考下
复制代码 代码如下:
<?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中使用Session配合Javascript实现文件上传进度条功能
这篇文章主要介绍了PHP中使用Session配合Javascript实现文件上传进度条功能,本文讲解了实现原理,并给出了完整实现代码,需要的朋友可以参考下2014-10-10PHP中使用sleep造成mysql读取失败的案例和解决方法
这篇文章主要介绍了PHP中使用sleep造成mysql读取失败的案例和解决方法,如果遇到这个问题,可能会耗费你N久的时间,希望你能快速的搜索到这篇文章吧,需要的朋友可以参考下2014-08-08支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
本文给大家推荐的是一款PHP的中文分词工具类,功能包括支持汉字转拼音、拼音分词、简繁互转。非常不错,有需要的小伙伴可以参考下2018-02-02PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
这篇文章主要介绍了PHP5.0~5.6 各版本兼容性cURL文件上传功能,结合实例形式分析了php各个常见版本进行curl文件上传操作的相关实现技巧与注意事项,需要的朋友可以参考下2018-05-05
最新评论