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

 更新时间:2012年06月21日 06:38:30   作者:  
php数据结构与算法(PHP描述) 快速排序 quick sort,学习php的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

复制代码 代码如下:

<?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);

相关文章

  • 解析zend studio中直接导入svn中的项目的方法步骤

    解析zend studio中直接导入svn中的项目的方法步骤

    本篇文章是对zend studio中直接导入svn中的项目的方法步骤进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP中的访问修饰符简单比较

    PHP中的访问修饰符简单比较

    在本篇文章里小编给大家分享了关于PHP中的public,private和protected的简单比较,有需要的朋友们学习下。
    2019-02-02
  • php模拟实现斗地主发牌

    php模拟实现斗地主发牌

    这篇文章主要为大家详细介绍了php模拟实现斗地主发牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • php数组指针操作详解

    php数组指针操作详解

    本文主要介绍了php数组指针操作。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • PHP基于GD库的图像处理方法小结

    PHP基于GD库的图像处理方法小结

    这篇文章主要介绍了PHP基于GD库的图像处理方法,结合实例形式总结分析了php操作GD库实现图形绘制功能的相关技巧与注意事项,需要的朋友可以参考下
    2016-09-09
  • php邮箱地址正则表达式验证

    php邮箱地址正则表达式验证

    这篇文章主要介绍了php邮箱地址正则表达式验证,利用php语言实现一下电子邮件地址验证程序,使用的是php语言的正则表达式库,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • WordPres对前端页面调试时的两个PHP函数使用小技巧

    WordPres对前端页面调试时的两个PHP函数使用小技巧

    这篇文章主要介绍了WordPres对前端页面调试时的两个PHP函数使用小技巧,分别是过滤Html内嵌JavaScript与禁止浏览器缓存的方法,需要的朋友可以参考下
    2015-12-12
  • PHP+JS三级菜单联动菜单实现方法

    PHP+JS三级菜单联动菜单实现方法

    这篇文章主要介绍了PHP+JS三级菜单联动菜单实现方法,涉及JavaScript动态控制页面样式及PHP数据库操作相关技巧,需要的朋友可以参考下
    2016-02-02
  • Smarty3配置及入门语法

    Smarty3配置及入门语法

    本文主要介绍了Smarty3配置及入门语法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • PHP常用操作类之通信数据封装类的实现

    PHP常用操作类之通信数据封装类的实现

    PHP类的封装对于初学者来说是比较难懂的,下面这篇文章主要给大家介绍了关于PHP常用操作类之通信数据封装类实现的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来一起学习学习吧。
    2017-07-07

最新评论

?


http://www.vxiaotou.com