PHPの簡易バブル法コード共有

3754 ワード

とても基础的なもの、感じのコードはまだ简洁ではありませんて、达人の指导の改正を望みます
 
  
function BubbleSort($str){
for($i=0;$ifor ($k=count($str)-2;$k>=$i;$k--){// ;
if($str[$k+1]$tmp=$str[$k+1];
$str[$k+1]=$str[$k];
$str[$k]=$tmp;
}
}
}
return $str;
}
//
$str=array(5,8,2,6,10,0,3,12,11);
print_r(BubbleSort($str));
?>

phpバブルソート2の基本概念は,隣接する2つの数を順次比較し,小数を前に,大数を後ろに置くことである.すなわち,まず1番目と2番目の数を比較し,小数を前にし,大数を後にする.次に2番目の数と3番目の数を比較し、小数を前にし、大数を後にして、最後の2つの数を比較し、小数を前にし、大数を後にします.以上の手順を繰り返し、第1対数から比較(2番目の数と3番目の数の交換により、1番目の数が2番目の数より小さくならない可能性があるため)、小数を前にし、大数を後にして、最大数の前の一対の隣接数まで比較し、小数を前にし、大数を後にし、2番目の回目が終了し、最後から2番目の数で新しい最大数が得られる.このままでは、最終的にソートが完了するまで.
ソート中は常に小数を前に、大数を後ろに、気泡を上昇させることに相当するので、泡ソートと呼ばれます.
二重サイクルで実現し,外サイクル変数をi,内サイクル変数をjとする.外循環は9回、内循環は9,8,...、1回です.比較を行うたびに2つの要素は内ループjに関係し,それらはそれぞれa[j]とa[j+1]で識別でき,iの値は1,2,...,9,i,jの各
値は1,2の順で...10-i.
 
  
function asc($a)
{
for($i=0;$i{
for($j=0;$j{
if($a[$j]>$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$a = array(9,8,17,6,26,4,33,2,1);
print_r(asc($a));
?>


function desc($a)
{
$c=array();
for($i=count($a)-1;$i>0;$i--)
{
for($j=0;$j{
if($a[$j]{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$arr=array(33,24,56,55,59);
desc($arr);
?> 

PHPバブルソート法プレゼンテーション以前の面接の時に試験官が出した筆記試験問題は、XXと比較して、プログラムを書くのはペンではなくコンピュータの上にあるべきだと思います.
PHPプログラムファイルsort_bubble_up.php
 
  






//
$arr=array();
echo '';
echo '';
for($i=0;$i<10;$i++){
$arr[$i]=rand();
echo "";
}
//
for($i=9;$i>0;$i--){
echo '';
for($j=0;$jif($arr[$j]$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
echo '';
for($k=0;$k<10;$k++){
switch($k){
case $j : echo '";
}
echo '';
}
}
//
echo '';
echo '';
for($i=0;$i<10;$i++){
echo "";
}
echo '';
?>
\$arr[$i]={$arr[$i]}
'.(10-$i).'
'; break;
case $j+1 : echo '
'; break;
default : echo '
';
}
echo "\$arr[$k]={$arr[$k]}
\$arr[$i]={$arr[$i]}



スタイルシートファイルcss
 
  
h1{text-align: center; color: blue;}
table{font-size: 12px; font-family: arial; background-color: black; text-align: center;}
td{background-color: white;}
.base{background-color: #0FF;}
.light{background-color: #0DD;}
.title{background-color: #3FF; text-align: center;}