php数据结构与算法(PHP描述) 快速排序 quick sort_php教程-查字典教程网
php数据结构与算法(PHP描述) 快速排序 quick sort
php数据结构与算法(PHP描述) 快速排序 quick sort
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类