ホームページ  >  記事  >  バックエンド開発  >  PHP で配列のソート方法を共有する

PHP で配列のソート方法を共有する

高洛峰
高洛峰オリジナル
2016-12-01 09:49:02996ブラウズ

A. 内部ソート (ソートのためにメモリに直接ロード): 交換ソート (バブルおよびクイックメソッド)、選択ソート、および挿入ソートを含む
B. 大量のデータのため、ソートには外部ストレージが必要です。 ): マージ ソート、ダイレクト マージ ソートを含む

[バブル ソート: 順番に隣接する要素のソート コードを比較し、逆の順序が見つかった場合は、次のラウンドが行われます。隣接するすべての要素が見つかります。逆順はありません。つまり、順番に配置されます。
コードをコピーします。 コードは次のとおりです。
function maoPao($arr,$style)//[アドレスではなく、デフォルト値が渡されます。 $arr の前に & を付けると $arr1 と同じアドレスを指し、関数外の $arr1 も配置されます]
{
$temp=0;
for($i=0; ;$i{
for($j=0;$j{
if($style= ='bts') $op=$arr[$j]else if($style=='stb') $op=$arr[$j]>$arr [$j+1];
if($op)
$temp=$arr[$j];
$arr[$j]=$arr[$j+1]; ]=$temp;
$flag=true;
}
}
if($flag==false)
break;// 水平サイクルが終了すると、flag==false;縦サイクル 要素の大きさを比較する際、if条件を満たしていない、つまり小さいものから大きいものへ並べており、横方向にループする必要がない
}
}
foreach ($arr as $key => ; $value)
{
echo $value.','
}
}
$arr1=array(101,101,-9,-8,0,76,1,57,43,90,23,-56) ;
maoPao($arr1,'stb');// small to big

【選択ソート: 2 番目から n 番目の数値は最初の数値とそれぞれ比較されて交換され、3 番目から n 番目の数値は 2 番目の数値と比較されます。
function selectSort($arr,$style)
{
$temp=0;
for($i=0;$i< count($arr)- 1;$i++)
{
for($j=$i+1;$j{
if($style=='bts') $ op=$arr[$ i]<$arr[$j];
else if($style=='stb') $op=$arr[$i]>$arr[$j]; $op)
$temp=$i];
$arr[$j]=$temp;
}
if($ flag==false)
{
break;
}
}
foreach ($arr as $key => $value)
{
echo $value.','; $arr1=array(21.5 ,33,90,7,-4,5,55,11);
selectSort($arr1,'stb'); コードをコピーする コードは次のとおりです。 ,$style)
{
$temp =0;
$flag=false;
for($i=0;$ifor($j=$i) +1;$j{
if($style=='bts') $op=$arr[$i]<$arr[$j];
else if( $style=='stb') $ op=$arr[$i]>$arr[$j];
if($op)
{
$temp=$arr[$i]; i]=$arr[$j] ;
$arr[$j]=$temp;
$flag==false)
{
}
}
foreach ($arr as $key => ; $value)
{
echo $value.','
}
}
$arr1=array(21.5,33,90,7,-4,5,55,11) );
selectSort($arr1,' stb');
エコー "
";

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