php数据结构与算法(PHP描述)快速排序quicksort
2023-06-13 09:14:34 时间
<?php
/**
*快速排序quicksort
*
**/
functionsort_quick($arrData){
if(empty($arrData)||!is_array($arrData))returnfalse;
$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"filterleft:",print_r($arrLeft),"<br/>";
echo"filterright:",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数组排序算法
- 算法学习之路 | 快速排序[Php]
- PHP 密码散列算法函数password_hash详解
- PHP DFA算法实现敏感词过滤包 php-dfa-sensitive
- MySQL求和算法在PHP中的应用(mysql求和php)
- PHP在Linux下的应用突破之路(php使用linux)
- 如何开启php-fpm状态页?
- PHP读取Linux文件的方法(php读取linux文件)
- MySQL实现PHP数组存储的效果(mysql存储数组php)
- PHP Redis实时监控系统的应用(php redis 监控)
- PHP连接MSSQL:实现不同数据库的高效通信(php连接mssql端口)
- PHP连接MSSQL数据库:探索新的接口(php连接mssql接口)
- PHP连接MSSQL:让你更快更好地实现数据互通(php接mssql)
- 学习PHP掌握MSSQL数据库操作的技巧(php如何操作mssql)
- Php与Mssql数据库的结合:强大联合力量(php mssql数据库)
- php不用内置函数对数组排序的两个算法代码
- 微盾PHP脚本加密专家php解密算法
- php实现查看邮件是否已被阅读的方法
- 排序算法之PHP版快速排序、冒泡排序
- PHP简单选择排序算法实例
- php获取apk包信息的方法