码迷,mamicode.com
首页 > 编程语言 > 详细

PHP 快速排序

时间:2017-03-08 01:08:38      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:返回   快速排序   lod   return   function   方法   sort   unshift   com   

1.快速排序 -- Quick Sort。

2.时间复杂度:T(n) = k* n *ln(n) (k常数因子)

3.适用条件:目前认为最好的内部排序方法。

 1 <?php
 2 $arr = [3,4,5,1,11,9,27,27,18,20];
 3 
 4 function quickSort(array &$arr,$low,$high)
 5 {
 6     $partQuickSort = function(array &$arr,$low,$high){
 7         $arr[0] = $arr[$low];
 8 
 9         while($low < $high)
10         {
11             while($low < $high && $arr[$high] >= $arr[0])
12             {
13                 --$high;
14             }
15             $arr[$low] = $arr[$high];
16 
17             while($low < $high && $arr[$low] <= $arr[0])
18             {
19                 ++$low;
20             }
21             $arr[$high] = $arr[$low];
22         }
23         $arr[$low] = $arr[0];
24 
25         return $low;    // 返回枢轴位置
26     };
27 
28     if($low < $high)
29     {
30         $pivot = $partQuickSort($arr,$low,$high);
31         quickSort($arr,1,$pivot-1);
32         quickSort($arr,$pivot+1,$high);
33     }
34 }
35 array_unshift($arr,0);
36 quickSort($arr,1,count($arr)-1);
37 array_shift($arr);
38 echo implode(‘,‘,$arr);

输出:

技术分享

 

PHP 快速排序

标签:返回   快速排序   lod   return   function   方法   sort   unshift   com   

原文地址:http://www.cnblogs.com/jingjingdidunhe/p/6517506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!