zoukankan      html  css  js  c++  java
  • PHP 快速排序

    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防止表单重复提交
    mysql 优化之注意
    mysqldump
    项目中下拉框链接问题
    css在IE和Firefox下的兼容性
    利用curl并发来提高页面访问速度
    修改linux下mysql目录权限
    ajax跨域
    wireshark抓包
  • 原文地址:https://www.cnblogs.com/jingjingdidunhe/p/6517506.html
Copyright © 2011-2022 走看看