Heim >php教程 >php手册 >php数据结构与算法(PHP描述) 快速排序 quick sort

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

WBOY
WBOYOriginal
2016-06-13 12:00:161157Durchsuche

复制代码 代码如下:


/**
* 快速排序 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 if($arrData[$i] $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 $arrResult[$i] = $arrLeft[$i];
}
}
$arrResult[$len_l] = $flag;
$len_l++;
if($len_r) {
$arrRight = sort_quick($arrRight);
for($i = 0;$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); <br>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn