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

PHPのバブルソート

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

$a=array('3','8','1','4','11','7');
print_r($a);
$len = count( $a);
//小さいものから大きいものへ
for($i=1;$i<$len;$i++)
{
for($j=$len-1;$j>=$i;$j - -)
if($a[$j]<$a[$j-1])
{//大きいものから小さいものまでであれば、ここでの判定を if($b[$j]>) に変更するだけです;$b[$j-1])
$x=$a[$j];
$a[$j]=$a[$j-1];
$a[$j-1] =$x ;
}
}
print_r($a);j

//小さいものから大きいものへの別のメソッド

$b=array('4','3','8','9', '2', '1');
$len=count($b);
for($k=1;$k<$len;$k++)
{
for($j=$len-1,$ i=0; $i<$len-$k;$i++,$j--)
if($b[$j]<$b[$j-1]){

//大きい順の場合 If itは小さいので、ここでの判定を if($b[$j]>$b[$j-1]) に変更してください
$tmp=$b[$j];
$b[$j ]=$b[ $j-1];
$b[$j-1]=$tmp;
}
print_r($b);
echo "
";
}

//以下 この実行はより効率的です

function maopao($arr)
{
$len = count($arr);
for($i=1; $i<$len; $i++)//最大 n-1 回の並べ替えが可能
{
$flag = false; //この並べ替えを開始する前に、交換フラグは false である必要があります
for($j=$len-1;$j>=$i;$j--)
{
if( $arr[ $j]<$arr[$j-1])//レコード交換
{//大きいものから小さいものまでであれば、ここでの判定を if($arr[$j]> $arr[$] に変更するだけですj-1])
$x=$arr[$j];
$arr[$j]=$arr[$j-1]
$arr[$j-1]= $x;
$flag = true;//交換が発生したため、交換フラグが true に設定されます
}
}
if(! $flag)// この並べ替えでは交換が発生しなかったので、アルゴリズムは早期に終了します
return $arr
}
}
$shuz = array('2','4','1','8','5');
$bb = maopao($shuz);
print_r($bb);

//クイックソート
関数 kuaisu($arr){
$len = count($arr);
if($len return $arr;
}
$key = $arr[0]; left_arr = array();
$right_arr = array();
for($i=1; $i<$len;$i++){
if($arr[$i] <= $key){
す($left_arr);
$right_arr = kuaisu( $right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
$arr = array(23,98,54,2,9, 62,34);
print_r(kuaisu($ arr));

?>


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