快速排序php写法
2012-12-07 17:38
260 查看
<?php /** * 快速排序 */ class quickSort { private static $list; //要排序的数据列表 private $size; //数组大小 public function __construct(array $arr){ self::$list = $arr; $this->size = count(self::$list); $this->dispatch(0, $this->size-1); } public function getResult(){ return self::$list; } /** * 单次排序 * @param $l 最左下标 * @param $r 最右下标 */ private function sort($l, $r){ $tmp = self::$list[$l]; while($l < $r){ while($l<$r && self::$list[$r]>=$tmp){ $r--; } if($l < $r){ self::$list[$l] = self::$list[$r]; $l++; } while($l<$r && self::$list[$l]<=$tmp){ $l++; } if($l < $r){ self::$list[$r] = self::$list[$l]; $r--; } } //此时$l==$r self::$list[$l] = $tmp; return $l; } /** * 递归调用单次排序 */ private function dispatch($l, $r){ if($l >= $r) return true; $mid = $this->sort($l, $r); $this->dispatch($l, $mid-1); $this->dispatch($mid+1, $r); } }
相关文章推荐
- PHP(冒泡,快速,选择,插入)排序
- PHP快速查找、排序
- 快速排序用js、java和C的写法
- 快速掌握PHP多维数组排序方法
- php排序、去掉重复项、快速查找
- php实现快速排序
- [php] 数据结构&算法(PHP描述) 快速排序 quick sort
- php数组快速排序
- php插入式排序的两种写法。
- 快速排序的PHP实现 Quick Sort
- php版快速排序
- 快速排序--简洁的JAVA/PHP实现
- 【算法】PHP实现冒泡排序和快速排序--防遗忘
- 快速排序partition过程常见的两种写法+快速排序非递归实现
- PHP实现快速排序
- 快速排序(php实现)
- php quickSort_快速排序
- 快速排序的php实现
- php 快速排序
- php 经典算法,冒泡算法,快速排序,选择排序,插入排序