ホームページ >php教程 >php手册 >PHP で配列のソート方法を共有する

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

WBOY
WBOYオリジナル
2016-06-13 11:59:42768ブラウズ

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

[バブルソート: 後ろから前へ順番に隣接する要素のソートコードを比較し、逆の順序が見つかった場合は、それを交換します。隣接するすべての数字が逆順になるまで、つまり、順番に配置されるまで]

コードをコピーします コードは次のとおりです:


function maoPao($ arr,$style)//[デフォルトではアドレスではなく値が渡されます。 $arr の前に & を付けると $arr1 と同じアドレスを指し、関数外の $arr1 も配置されます。 🎜>for($i=0;$i{
for($j=0;$j{
if($style=='bts') $op=$arr[$j]<$arr[$j 1];
else if($style== 'stb') $op=$arr[$j]>$arr[$j 1];
if($op)
{
$temp=$arr[$j]; >$arr[$j]=$arr[$j 1];
$arr[$j 1]=$temp;
}
}
($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); $arr1,'stb' );//small to big


[選択ソート: 2 番目から n 番目の数値はそれぞれ最初の数値と比較されて交換され、3 番目から n 番目の数値はそれぞれ比較されます2 番目の数値を入力し、ソートされるまで交換します]



コードをコピー

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

function selectSort($ arr,$style) { $temp=0; $flag=false; for($i=0;$i{

for($j=$i 1;$j{
if($style=='bts') $op=$arr[ $i]else if($style=='stb') $op=$arr[$i]>$arr[$j]; op)
{
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp; 🎜>$flag=true;
}
}
if($flag==false)
{
ブレーク;
}
}
foreach ($arr) $key => $value)
{
echo $value.','
}
}
$arr1=array(21.5,33,90,7,-4) ,5,55,11);
selectSort($arr1,'stb');





コードをコピーします



関数 selectSort($arr,$style)
{

$temp=0; $flag=false; ;$i{ for($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]; ];
$arr[$j]=$temp;
$flag=true;
}
if($flag==false)
{
;
}
}
foreach ($arr as $key => $value)
{
echo $value.',';
}
}
$arr1 =array(21.5,33,90,7,-4,5,55,11);
selectSort($arr1,'stb');
echo "
";


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