加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 06:07:50 所属栏目:PHP教程 来源:网络整理
导读:div class="codetitle" a style="CURSOR: pointer" data="19317" class="copybut" id="copybut19317" onclick="doCopy('code19317')" 代码如下: div class="codebody" id="code19317" ?php / 快速排序 quick sort / function sort_quick($arrData) { if(empt

<div class="codetitle"><a style="CURSOR: pointer" data="19317" class="copybut" id="copybut19317" onclick="doCopy('code19317')"> 代码如下:<div class="codebody" id="code19317">
<?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," ==========================================
";
echo "data : ",print_r($arrData),"
";
echo "filter left: ",print_r($arrLeft),"
";
echo "filter right: ",print_r($arrRight),"
";
echo "return : ",print_r($arrResult),"
"; return $arrResult;
}
//$list = array(4,3,2,1,5,7,7);
$list = array(4,51,6,73,9,33,50,4,67);
$list = sort_quick($list);
echo "

";print_r($list); 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读