ホームページ > バックエンド開発 > PHPチュートリアル > 簡単な並べ替え、対処方法

簡単な並べ替え、対処方法

WBOY
リリース: 2016-06-13 13:41:55
オリジナル
986 人が閲覧しました

クイックソート
関数 Quicksort($arr,$lo0,$hi0) {
$lo = $lo0;
$hi = $hi0;
$flag = true;
$tmp = 0;

if($lo>$hi) {
return ;

}

while ($lo!=$hi) {

if($arr[$lo]>$arr[$hi]) {

$tmp = $arr[$lo];
$arr[$lo] = $arr[$hi] ];
$arr[$hi] = $tmp;

$flag = ($flag==true)?false:true;

}

if ($flag) {
$lo++;
}else {
$hi--;
}

}

$lo--;
$hi++;

クイックソート($arr,$lo0,$lo);
クイックソート($arr,$hi,$hi0);
}

$arr = 配列(5,4,2,6,8,1,10,9);
クイックソート($arr,0,count($arr)-1);

for($i=0; $i
echo "arr[$i]=".$arr[$i]."
";

}
なぜ上の赤い部分が判断できないのですか? 。

-----解決策---------
if($arr[$lo]>$arr[$hi]) { 判定は無効です
が、配列要素を交換するアクションは保存されません

function Quicksort(&$arr ,$lo0,$ hi0) {
参照を渡すだけです
------解決策------------------
この関数には戻り値がありません。これを行う必要があります。

function Quicksort(&$arr,$lo0,$hi0)// "e

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