php数据结构与算法(PHP描述) 快速排序 quick sort

2015-01-24信息快讯网

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服务端图片生成缩略图的方法详解
解析thinkphp中的导入文件标签
解析thinkphp import 文件内容变量失效的问题
解析用PHP实现var_export的详细介绍
PHP 实现explort() 功能的详解
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
解析phpstorm + xdebug 远程断点调试
使用array mutisort 实现按某字段对数据排序
深入array multisort排序原理的详解
如何利用php array_multisort函数 对数据库结果进行复杂排序
php排序算法(冒泡排序,快速排序)
php实现快速排序法函数代码
通过PHP的内置函数,通过DES算法对数据加密和解密
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
php后退一页表单内容保存实现方法
php中使用接口实现工厂设计模式的代码
php中jQuery插件autocomplate的简单使用笔记
PHP的加密方式及原理
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
PHP number_format() 函数定义和用法
PHP中将网页导出为Word文档的代码
php的array_multisort()使用方法介绍
修改PHP的memory_limit限制的方法分享
PHP中usort在值相同时改变原始位置问题的解决方法
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
php数组函数序列之sort() 对数组的元素值进行升序排序
Smarty+QUICKFORM小小演示
©2014-2024 dbsqp.com