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

/**

* 快速排序 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,3,7);

$list = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67);

$list = sort_quick($list);

echo “

”;print_r($list);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值