Home  >  Article  >  Backend Development  >  PHP排序问题

PHP排序问题

WBOY
WBOYOriginal
2016-06-23 14:31:25850browse

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP 中文处理Next article:PHP和MySQL入门(10)