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 番目の数値と交換します。キューが終了するまで]
コードをコピーします
コードは次のとおりです。 false; for($i=0;$ 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)
break;
}
foreach ($arr as $key => $value)
{
echo $value.',';
}
}
$arr1=array(21.5,33,90,7,-4,5,55,11);
コードをコピーします
コードは次のとおりです:
function selectSort($arr,$style)
{
$temp=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=$arr[$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');
echo "
";
http://www.bkjia.com/PHPjc/325607.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325607.html
技術記事
A. 内部ソート (ソートのためにメモリに直接ロード): 交換ソート (バブルおよびクイックメソッド)、選択ソート、挿入ソートを含む B. 外部ソート (大量のデータのため、外部ソートが必要です...