PHPのソートの問題

WBOY
リリース: 2016-06-23 14:31:25
オリジナル
893 人が閲覧しました

最後のTCP/IP試験が終わり、私の二年生生活は無情にも終わりを告げた。朝起きると、仲間たちがまだぐっすり眠っていたので、どうしたらいいのか分からず、歩き始めました。 PHP でバブル ソート アルゴリズムを使用して配列をソートするという兄弟の記事を見たとき、私は思わず内心で笑ってしまいました...PHP には非常に多くのソート関数があるのに、なぜ自分でこれを書いたのですか? !後で考えてみると、それは間違いでした。プログラミングは暗記する機械的な練習ではなく、複数の思考の集合体です。アルゴリズムを定期的に練習する目的は、思考を拡張することです。

それで自分で書いてみた…

                  <p class="sycode">                 <?     php      $array           =           array     (     10     ,     5     ,     36     ,     86     ,     2     ,     56     ,     9     ,     15     ,     8     ,     4     ,     3     ,     41     );      $num           =           count     (     $array     );      for     (     $i           =           0     ;     $i     <     $num     -     1     ;     $i     ++     ){      for     (     $j           =           $i     +     1     ;     $j     <     $num     ;     $j     ++     ){      if     (     $array     [     $j     ]     >     $array     [     $i     ]){//这里交换数组的值      $temp           =           $array     [     $i     ];      $array     [     $i     ]      =           $array     [     $j     ];      $array     [     $j     ]      =     $temp     ; } } }      print_r     (     $array     );     ?>                  </p>
ログイン後にコピー

これが私が書いたバブルソートアルゴリズムで、結果はまだOKです:

                  <p class="sycode">                 ----------      PHP Debug      ----------          Array     ( [     0     ]      =>           86      [     1     ]      =>           56      [     2     ]      =>           41      [     3     ]      =>           36      [     4     ]      =>           15      [     5     ]      =>           10      [     6     ]      =>           9      [     7     ]      =>           8      [     8     ]      =>           5      [     9     ]      =>           4      [     10     ]      =>           3      [     11     ]      =>           2     )输出完成 (耗时      0      秒)      -      正常终止                  </p>
ログイン後にコピー

見てくださいうまくいくようです成功した Little Joy、もう一つ書いたら問題が出てきた??

                  <p class="sycode">                 <?     php      $array           =           array     (     10     ,     5     ,     36     ,     86     ,     2     ,     56     ,     9     ,     15     ,     8     ,     4     ,     3     ,     41     );      $num           =           count     (     $array     );      for     (     $i     =     0     ;     $i     <     $num     -     1     ;     $i     ++     ){      for     (     $j     =     $i     +     1     ;     $j     <     $num     ;     $j     ++     ){      if     (     $array     [     $j     ]     >     $array     [     $i     ]){//这里是交换键值      $temp           =           $i     ;      $i     =     $j     ;      $j     =     $temp     ; } } }      print_r     (     $array     );     ?>                  </p>
ログイン後にコピー

結果はひどいものでした…

                  <p class="sycode">                 ----------      PHP Debug      ----------          Array     ( [     0     ]      =>           10      [     1     ]      =>           5      [     2     ]      =>           36      [     3     ]      =>           86      [     4     ]      =>           2      [     5     ]      =>           56      [     6     ]      =>           9      [     7     ]      =>           15      [     8     ]      =>           8      [     9     ]      =>           4      [     10     ]      =>           3      [     11     ]      =>           41     )输出完成 (耗时      0      秒)      -      正常终止                  </p>
ログイン後にコピー

どれも置き換えられなかったのですが、なぜですか? ?なぜ? ? ?

通りすがりの人は私にコメントするのを忘れていました...

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