php实现快速排序法函数代码


Posted in PHP onAugust 27, 2012

代码1:

<?php 
function quicksort($str){ 
if(count($str)<=1) return $str;//如果个数不大于一,直接返回 
$key=$str[0];//取一个值,稍后用来比较; 
$left_arr=array(); 
$right_arr=array(); 
for($i=1;$i<count($str);$i++){//比$key大的放在右边,小的放在左边; 
if($str[$i]<=$key) 
$left_arr[]=$str[$i]; 
else 
$right_arr[]=$str[$i]; 
} 
$left_arr=quicksort($left_arr);//进行递归; 
$right_arr=quicksort($right_arr); 
return array_merge($left_arr,array($key),$right_arr);//将左中右的值合并成一个数组; 
}//以下是测试 
$str=array(5,3,8,2,5,9,7,2,1,4,0); 
print_r(quicksort($str)); 
?>

代码2:
/* @快速排序法*/ 
function quickSort($left,$right,$arr){ 
$l = $left; 
$r = $right; 
$pivot = $arr[($left+$right)/2]; 
$temp = 0; while($l<$r){ 
while($arr[$l]<$pivot){ 
$l++; 
} 
while($arr[$r]>$pivot){ 
$r--; 
} 
if($l>=$r) break; 
$temp = $arr[$l]; 
$arr[$l] = $arr[$r]; 
$arr[$r] = $temp; 
if($arr[$l]==$pivot) --$r; 
if($arr[$r]==$pivot) ++$l; 
} 
if($l==$r){ 
$l++; 
$r--; 
} 
if($left<$r){ 
quickSort($left, $r, $arr); 
}elseif($right>$l){ 
quickSort($l, $right, $arr); 
}else{ 
return $arr; 
} 
}
PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
php explode函数实例代码
Feb 27 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
php中删除、清空session的方式总结
Oct 09 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
Dec 07 PHP
PHP实现图片上传并压缩
Dec 22 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 #PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 #PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 #PHP
php基础教程 php内置函数实例教程
Aug 21 #PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 #PHP
php计算十二星座的函数代码
Aug 21 #PHP
表格展示无限级分类(PHP版)
Aug 21 #PHP
You might like
Oracle Faq(Oracle的版本)
2006/10/09 PHP
PHP文件下载类
2006/12/06 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
javascript实现日历效果
2019/06/17 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
python中执行shell命令的几个方法小结
2014/09/18 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
python实现桌面壁纸切换功能
2019/01/21 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
什么是python的函数体
2020/06/19 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
python+opencv实现车道线检测
2021/02/19 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
管理学专业个人求职信范文
2013/09/21 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
党员个人总结自评
2015/02/14 职场文书
小学教师党员承诺书
2015/04/27 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server