php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 快速排序 quick sort
更新時(shí)間:2012年06月21日 06:38:30 作者:
php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 快速排序 quick sort,學(xué)習(xí)php的朋友可以參考下
復(fù)制代碼 代碼如下:
<?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; // 如果只有一個(gè)數(shù)據(jù)的數(shù)組直接返回
$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++;
}
}
// 合并數(shù)組
$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排序算法(冒泡排序,快速排序)
- PHP常用排序算法實(shí)例小結(jié)【基本排序,冒泡排序,快速排序,插入排序】
- PHP四種排序算法實(shí)現(xiàn)及效率分析【冒泡排序,插入排序,選擇排序和快速排序】
- PHP排序算法之快速排序(Quick Sort)及其優(yōu)化算法詳解
- PHP 冒泡排序 二分查找 順序查找 二維數(shù)組排序算法函數(shù)的詳解
- php實(shí)現(xiàn)的常見排序算法匯總
- PHP實(shí)現(xiàn)的多維數(shù)組排序算法分析
- PHP實(shí)現(xiàn)桶排序算法
- PHP排序算法之歸并排序(Merging Sort)實(shí)例詳解
- PHP快速排序算法實(shí)例分析
相關(guān)文章
PHP中使用Session配合Javascript實(shí)現(xiàn)文件上傳進(jìn)度條功能
這篇文章主要介紹了PHP中使用Session配合Javascript實(shí)現(xiàn)文件上傳進(jìn)度條功能,本文講解了實(shí)現(xiàn)原理,并給出了完整實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-10-10PHP中使用sleep造成mysql讀取失敗的案例和解決方法
這篇文章主要介紹了PHP中使用sleep造成mysql讀取失敗的案例和解決方法,如果遇到這個(gè)問題,可能會(huì)耗費(fèi)你N久的時(shí)間,希望你能快速的搜索到這篇文章吧,需要的朋友可以參考下2014-08-08實(shí)現(xiàn)dedecms全站URL靜態(tài)化改造的代碼
實(shí)現(xiàn)dedecms全站URL靜態(tài)化改造的代碼...2007-03-03支持漢轉(zhuǎn)拼和拼音分詞的PHP中文工具類ChineseUtil
本文給大家推薦的是一款PHP的中文分詞工具類,功能包括支持漢字轉(zhuǎn)拼音、拼音分詞、簡(jiǎn)繁互轉(zhuǎn)。非常不錯(cuò),有需要的小伙伴可以參考下2018-02-02PHP5.0~5.6 各版本兼容性cURL文件上傳功能實(shí)例分析
這篇文章主要介紹了PHP5.0~5.6 各版本兼容性cURL文件上傳功能,結(jié)合實(shí)例形式分析了php各個(gè)常見版本進(jìn)行curl文件上傳操作的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-05-05