快速算法

其实我工作中很少用到排序算法为了提高自己写算法的速度这几天自己打算实现几个成熟的算法

/**
 * 快速算法
 * 
  */
function fastSort($arr) {
 if (count ( $arr ) <= 1) {
  return $arr;
 }
 $key = array_rand ( $arr );
 $val0 = $arr [$key];
 $left = array ();
 $right = array ();
 foreach ( $arr as $key1 => $val ) {
  if ($key1 != $key) {
   if ($val > $val0) {
    $right [] = $val;
   } else {
    $left [] = $val;
   }
  }
 }
 
 $l = fastSort ( $left );
 $r = fastSort ( $right );
 return array_merge ( $r, array ($val0 ), $l );
}

posted @ 2011-08-16 17:25  安子  阅读(215)  评论(0)    收藏  举报