手机
当前位置:查字典教程网 >编程开发 >php教程 >php数据结构与算法(PHP描述) 快速排序 quick sort
php数据结构与算法(PHP描述) 快速排序 quick sort
摘要:复制代码代码如下:

复制代码 代码如下:

<?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描述) 快速排序 quick sort】相关文章:

如何在PHP中使用Oracle数据库(6)

PHP 和 MySQL 基础教程(四)

实现树状结构的两种方法

PHP时间和日期函数详解

如何限制访问者的ip(PHPBB的代码)

php正则

php实现插入排序

十天学会php之第五天

php数组随机排序实现方法

在线竞拍系统的PHP实现框架(二)

精品推荐
分类导航