Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1504232
  • 博文数量: 164
  • 博客积分: 2993
  • 博客等级: 少校
  • 技术积分: 1718
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-24 11:42
文章分类

全部博文(164)

文章存档

2014年(1)

2013年(36)

2012年(90)

2011年(37)

分类: Python/Ruby

2012-07-17 17:32:34

点击(此处)折叠或打开

  1. <?php
  2. /**
  3.  *快速排序
  4.  *思路:通过一趟排序将要排序的数据分割成独立的两部分,
  5.  *其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按
  6.  *此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进
  7.  *行,以此达到整个数据变成有序序列。
  8.  */

  9. function quickSort($arr){
  10.     $len=count($arr);
  11.     if($len<=1){
  12.         return $arr;
  13.     }
  14.     $key=$arr[0];
  15.     $left=array();
  16.     $right=array();
  17.     for($i=1;$i<$len;$i++){
  18.         if($arr[$i]>$key){
  19.             $right[]=$arr[$i];
  20.         }else{
  21.             $left[]=$arr[$i];
  22.         }
  23.     }
  24.     $left=quickSort($left);
  25.     $right=quickSort($right);
  26.     return array_merge($left,array($key),$right);
  27. }
  28. print_r(quickSort(array(2,3,3,19,45,4,5,6)));
  29. ?>

阅读(1120) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~