ホームページ > php教程 > php手册 > PHP はクイックソートメソッド関数コードを実装します

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

WBOY
リリース: 2016-06-13 11:58:27
オリジナル
915 人が閲覧しました

コード 1:

コードをコピー コードは次のとおりです。


function Quicksort($str) ){
if(count($str)<=1) return $str;//数値が 1 より大きくない場合は、直接戻ります
$key=$str[0];//
$left_arr=array();
for($i=1;$iif($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;

$pivot = $arr; left $right)/2];
$temp = 0;

while($lwhile($arr[$l]$l ;
}
while($arr[ $r]>$pivot){
$r--;

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

$temp = $arr[$l] = $arr[$r];
$arr[$r];

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

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

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


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート