PHP配列のソート方法の共有(バブルソート、選択ソート)

WBOY
リリース: 2016-07-25 09:04:04
オリジナル
1237 人が閲覧しました
  1. function maoPao($arr,$style)//デフォルトでは、アドレスではなく値が渡されます。 $arr の前に & を付けると $arr1 と同じアドレスを指し、関数外の $arr1 も配置されます
  2. {
  3. $temp=0;
  4. for($i=0; $i{
  5. for($j=0;$j{
  6. if($style== 'bts') $op=$arr[$j]<$arr[$j+1];
  7. else if($style=='stb') $op=$arr[$j]>$arr[ $j+1];
  8. if($op)
  9. $temp=$arr[$j];
  10. $arr[$j]=$arr[$j+1]; ]=$temp;
  11. $flag=true;
  12. }
  13. }
  14. if($flag==false)
  15. break;// 水平ループが終了すると、flag==false;縦方向のループ サイズを比較する際、if条件を満たしていない、つまり小さい順から大きい順に並べられているため、横方向にループする必要はありません
  16. }
  17. }
  18. foreach ($arr as $key => $value )
  19. {
  20. echo $value.',';
  21. }
  22. }
  23. $arr1=array(101,101,-9,-8,0,76,1,57,43,90,23,-56); ($arr1,'stb');//small to big
  24. ?>
  25. コードをコピー
バブルソートの例については、次の記事も参照できます。
phpバブルソート交換ソート方法 PHPバブルソートの別の例

バブルソートアルゴリズムを実装するためのphpコード PHPバブルソートアルゴリズムの例 PHPのバブルソートとクイックソートの例 2. 並べ替えを選択します。 ソートが完了するまで、2 番目から n 番目の数値は最初の数値とそれぞれ比較されて交換され、3 番目から n 番目の数値はそれぞれ 2 番目の数値と比較されて交換されます。

/**

*
    *
  1. *
  2. */
  3. function selectSort($arr,$style)
  4. {
  5. $temp=0;
  6. for ($i=0;$i{
  7. for($j=$i+1;$j{
  8. if( $style=='bts') $op=$arr[$i]<$arr[$j];
  9. else if($style=='stb') $op=$arr[$i]>$ arr[$j];
  10. if($op)
  11. $temp=$arr[$i];
  12. $arr[$j]=$temp ;
  13. $flag=true;
  14. }
  15. }
  16. if($flag==false)
  17. {
  18. break;
  19. }
  20. }
  21. foreach ($arr as $key => $value)
  22. {
  23. echo $value. ',';
  24. }
  25. }
  26. $arr1=array(21.5,33,90,7,-4,5,55,11);

  27. < ;p>関数 selectSort($arr,$style)
  28. {
  29. $temp=0;
  30. $flag=false;
  31. for($i=0;$i{
  32. for($j=$i+1;$j{
  33. if($style=='bts') $op=$arr[$i]<$arr[ $j];
  34. else if($style=='stb') $op=$arr[$i]>$arr[$j];
  35. if($op)
  36. $temp=$arr[$ i];
  37. $arr[$i]=$arr[$j];
  38. $flag=true;
  39. if($flag==false)
  40. break;
  41. }
  42. }
  43. foreach ($arr as $key => $value)
  44. {
  45. echo $value.',';
  46. }
  47. }
  48. $arr1=array(21.5,33,90,7, -4,5,55,11);
  49. selectSort($arr1,'stb');
  50. echo "
    ";
  51. ?>

  52. コードをコピーします
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート