PHP算法之快速排序

快速排序原理相对简单,就是递归调用,两个方向排序
用PHP代码实现:
  1. function quick_sort($array) {
  2.         $count = count($array);
  3.         if($count <= 1) {
  4.                 return $array;
  5.         }
  6.         $key = $array[0];
  7.         $left_arr = array();
  8.         $right_arr = array();
  9.         for($i = 1; $i < $count; $i++) {
  10.                 if($array[$i] <= $key) {
  11.                         $left_arr[] = $array[$i];
  12.                 } else {
  13.                         $right_arr[] = $array[$i];
  14.                 }
  15.         }
  16.         $left_arr = quick_sort($left_arr);
  17.         $right_arr = quick_sort($right_arr);
  18.        
  19.         return array_merge($left_arr, $array($key), $right_arr);
  20. }
复制代码

作者: howk   发布时间: 2011-06-16

如果用LZ的代码来排序一个有100万个元素的数组会死翘翘

作者: liexusong   发布时间: 2011-06-16

递归递死了

作者: qxhy123   发布时间: 2011-06-16

递归不是问题,最重要的是内存会爆

作者: liexusong   发布时间: 2011-06-16

这快不了吧,貌似那个什么冒泡就要牛X多了...

相对而言,如果数据量太大,一般还得用个什么外部排序之流的算法。呃,这些算法在C中貌似基本上算是必学的吧.

作者: 游戏人间   发布时间: 2011-06-16