ホームページ  >  記事  >  バックエンド開発  >  PHP はクイックソートメソッド関数コードを実装します

PHP はクイックソートメソッド関数コードを実装します

高洛峰
高洛峰オリジナル
2016-12-01 10:29:521273ブラウズ

コード 1:
コードをコピーする コードは次のとおりです:
function Quicksort($str){
if(count($str)<=1) return $str;//数値がそうでない場合1 より大きい場合、直接 Return
$key=$str[0];//後で比較する値を取得します
$right_arr=array(); i< count($str);$i++){//$key より大きいものは右側に配置され、小さいものは左側に配置されます
if($str[$i]<=$key; )
$left_arr[]=$str [$i];
else
$right_arr[]=$str[$i];
$left_arr=quicksort($left_arr);//再帰を実行します。 Quicksort($right_arr);
return array_merge ($left_arr,array($key),$right_arr);// 左、中央、右の値を配列に結合します
}// 以下はテストです
$ str=array(5,3,8,2,5, 9,7,2,1,4,0​​);
print_r(quicksort($str));

コード 2:
コードをコピーコードは次のとおりです:
/* @quicksort*/
function QuickSort ($left,$right,$arr){
$l = $left = $arr[($left+ $right)/2];
$temp = 0;
while($l$l++; [$r]>$pivot){
$r-- ;

if($l>=$r) ブレーク;

$temp = $arr[$l]; = $arr[$r];
$arr[$r] = $temp;
if($arr[$r]==) $pivot) ++$l;
}

if($ l==$r){
$r--;
}

if($left<$r){
quickSort($left) , $r, $arr);
}elseif($right>$l){
quickSort($l, $right, $arr);
return $arr;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。