ホームページ  >  記事  >  バックエンド開発  >  PHPのクイックソートの問題

PHPのクイックソートの問題

WBOY
WBOYオリジナル
2016-06-23 13:31:26920ブラウズ

$arr=array(4,1,9,2,3);function quick($arr){	if ( count($arr)<=1) {		return $arr;	}	for ($i=1; $i < count($arr); $i++) { 		if ($arr[0]<$arr[$i]) {			$right[]=$arr[$i];		}else{			$left[]=$arr[$i];		}	}	$right1=quick($right);	$left1=quick($left);	return array_merge($left1,array($arr[0]),$right1);}var_dump(quick($arr));

皆さん、こんにちは。私は PHP を使用して簡単な並べ替え問題を実装しています。最終結果は常に NULL になりますが、これは不可解です。教えてください、ありがとう!


ディスカッションへの返信(解決策)

$arr=array(4,1,9,2,3);print_r(quick($arr));function quick($arr){    if ( count($arr)<=1) {         return $arr;    }    $left = array();    $righe = array();    for ($i=1; $i < count($arr); $i++) {         if ($arr[0]<$arr[$i]) {            $right[]=$arr[$i];        }else{            $left[]=$arr[$i];        }    }    $right1=quick($right);    $left1=quick($left);    return array_merge($left1,array($arr[0]),$right1);}
Array(    [0] => 1    [1] => 2    [2] => 3    [3] => 4    [4] => 9)
何が違うのかは自分の目で確かめてください

$left と $right に初期値がない場合
結果がどうなるかを考えてください

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