快速排序
来源:互联网 发布:mac chrome允许flash 编辑:程序博客网 时间:2024/06/07 14:19
/** * 快速排序----代码1 * @param $arr array * @return $new_arr array */function QuickSort(){$num = count($arr);$l = $r = 0;for($i = 0; $i < $num; $i++){if( $arr[$i] < $arr[0] ){$left[] = $arr[$i];$l++;}else{$right[] = $arr[$i];$r++;}}if($l > 1){$left = QuickSort($left);}$new_arr = $left;$new[] = arr[0];if($r > 1){$right = QuickSort($right);}for($i = 0; $i < $r; $i++){$new_arr[] = $right[$i];}return $new_arr;}/** * 快速排序----代码2 * @param $arr array * @return $new_arr array */function QuickSort($arr){$num = count($arr);if($num > 1){$max = $arr[0];$left = array();$right = array();for($i = 1; $i < $num; $i++){if($max >= $arr[$i]){$left[] = $arr[$i];}else if($max < $arr[$i]){$right[] = $arr[$i];}}$left = QuickSort($left);$right = QuickSort($right);return array_merge($left,array($max),$right);}else{return $arr;}}
原理:快速排序使用分治思想来把待排序的数组分成两个子数组,具体步骤为:
(1)从数列中挑出一个元素。成为元素的“基准”
(2)遍历一遍数组将所用比基准小的元素放在左边,比基准大的元素放在右边
(3)通过递归,将子数组划分为更小的数组。直到子数组的元素数量小于等于1
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- JavaScript 打开远程 JS 文件
- Python从入门到放弃(五):类细讲
- Java自动内存管理机制(一) JVM、Class
- pageHelper
- 悲观锁与乐观锁
- 快速排序
- HDU 2136 Largest prime factor(筛选法)
- eclipse 查看版本号及优化运行速度
- iOS中集成ijkplayer视频直播框架
- 做一款仿映客的直播App?看这篇就够了
- [JS]Mac系统下SublimeText运行JavaScript控制台——纯JavaScript开发环境
- POJ——2002——Squares
- poj3321 Apple Tree
- 感悟