ホームページ  >  記事  >  バックエンド開発  >  PHP簡易バブルメソッドコード共有_PHPチュートリアル

PHP簡易バブルメソッドコード共有_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:16:36957ブラウズ

非常に基本的なものです。コードが十分に簡潔ではないと思います。専門家が修正するよう指導してくれることを願っています

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

function BubbleSort( $str){
for($i=0;$ ifor ($k=count($str)-2 ;$k>=$i;$k--){// この値を前方にバブルします
if($str[$k+1]<$str[$k]){ //小なり記号を次のように変更します。大なり記号 (降順で並べ替えます)
$str[$k+1]=$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 つの数値を比較するまで同様に、小数を前に、大きな数値を後ろに置きます。上記のプロセスを繰り返しますが、引き続き最初の数値のペアから開始し (2 番目の数値と 3 番目の数値の交換により、最初の数値が 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]=$tmp; $a) ;
$a = array(9,8,17,6,26,4,33,2,1);


関数記述($a)
{
$c=array();
for($i=count($a)-1;$i>0;$i--)
{
for($j=0;$j{
if($a[$j]<$a[$j+1])
{
$tmp= $a[$j+1];
$a[$j]=$tmp;
}
}
print_r($a);
}
$arr=array(33,24,56,55,59);
desc($arr);
?> XX と比較すると、プログラムはペンではなくコンピューター上で作成する必要があります。
PHP プログラム ファイル sort_bubble_up.php



コードをコピー

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

バブルソート方法のデモ


/ /ランダムに配列を生成
$arr=array();
echo '初期値'; ';
for($i=0;$i$arr[$i]=rand();
echo "$arr[$i]= {$arr[$ i]}";
}
//バブルソートを実行します
for($i=9;$i>0;$i--){
echo ''.(10-$i).' 回目';
for($j=0;$j< ;$i;$j++) {
if($arr[$j]$tmp=$arr[$j];
$arr[$j]=$arr [$j+1];
$arr[$j+1]=$tmp;
}
echo '';
for($k=0;$kswitch ($k){
case $j : エコー ''
case $j+1 : echo '';
デフォルト : echo ' ;';
}
echo "$arr[$k]={$arr[$k]}";
}
echo ''
}
}
//結果を並べ替えています
echo 'Results';
echo '$arr[$i]={$arr[$i]}";
}
echo '
?>



コードをコピー

次のように{テキスト整列: 中央; 色: 青;}
テーブル{フォントサイズ: 12px; 背景色: 黒; テキスト整列: 中央;}
td{背景色: 白;} .base{背景色: #0FF;}
.light{背景色: #0DD;}
.title{背景色: #3FF;}

http://www.bkjia.com/PHPjc/325904.htmlwww.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/325904.html

技術記事

これは非常に基本的なことですが、コードが十分に簡潔ではないように感じます。次のようにコードを変更してコピーするよう専門家に教えていただければ幸いです。 ?php function BubbleSort($str){ for($i=0;$icount() $str);$i++){//From 配列の末尾を取得します...

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