PHP算法之快速排序
快速排序原理相对简单,就是递归调用,两个方向排序
用PHP代码实现:
复制代码
用PHP代码实现:
- function quick_sort($array) {
- $count = count($array);
- if($count <= 1) {
- return $array;
- }
- $key = $array[0];
- $left_arr = array();
- $right_arr = array();
- for($i = 1; $i < $count; $i++) {
- if($array[$i] <= $key) {
- $left_arr[] = $array[$i];
- } else {
- $right_arr[] = $array[$i];
- }
- }
- $left_arr = quick_sort($left_arr);
- $right_arr = quick_sort($right_arr);
-
- return array_merge($left_arr, $array($key), $right_arr);
- }
作者: howk 发布时间: 2011-06-16
如果用LZ的代码来排序一个有100万个元素的数组会死翘翘
作者: liexusong 发布时间: 2011-06-16
递归递死了
作者: qxhy123 发布时间: 2011-06-16
递归不是问题,最重要的是内存会爆
作者: liexusong 发布时间: 2011-06-16
这快不了吧,貌似那个什么冒泡就要牛X多了...
相对而言,如果数据量太大,一般还得用个什么外部排序之流的算法。呃,这些算法在C中貌似基本上算是必学的吧.
相对而言,如果数据量太大,一般还得用个什么外部排序之流的算法。呃,这些算法在C中貌似基本上算是必学的吧.
作者: 游戏人间 发布时间: 2011-06-16