首页 >后端开发 >php教程 >PHP排序问题

PHP排序问题

WBOY
WBOY原创
2016-06-23 14:31:25913浏览

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn