Heim  >  Artikel  >  Backend-Entwicklung  >  PHP排序问题

PHP排序问题

WBOY
WBOYOriginal
2016-06-23 14:31:25849Durchsuche

  最后一科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>

  这是写的冒泡排序算法,结果还是可以的:

                  <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>

  看着有了成功的小喜悦,就又写了一个,于是问题就出来了??

                  <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>

  一个也没换过来,Why??Why???

  路过个别忘提个意见啊……

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP 中文处理Nächster Artikel:PHP和MySQL入门(10)