快速排序算法

网上有关“快速排序算法”话题很是火热,小编也是针对快速排序算法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

第一趟排序后数组中的元素排列为37、35、38、36、47、53、65、73;

第二趟排序后数组中的元素排列为36、35、37、38、47、53、65、73;

第三趟排序后数组中的元素排列为35、36、37、38、47、53、65、73;

第四趟排序后数组中的元素排列为35、36、37、38、47、53、65、73;

第五趟排序后数组中的元素排列为35、36、37、38、47、53、65、73;

第六趟排序后数组中的元素排列为35、36、37、38、47、53、65、73;

第七趟排序后数组中的元素排列为35、36、37、38、47、53、65、73;

第八趟排序后数组中的元素排列为35、36、37、38、47、53、65、73。

算法原理

下列动图来自五分钟学算法,演示了快速排序算法的原理和步骤。

步骤:

从数组中选个基准值

将数组中大于基准值的放同一边、小于基准值的放另一边,基准值位于中间位置

递归的对分列两边的数组再排序

代码实现

function

quickSort($arr)

{

$len

=

count($arr);

if

($len

<=

1)

{

return

$arr;

}

$v

=

$arr[0];

$low

=

$up

=

array();

for

($i

=

1;

$i

<

$len;

++$i)

{

if

($arr[$i]

>

$v)

{

$up[]

=

$arr[$i];

}

else

{

$low[]

=

$arr[$i];

}

}

$low

=

quickSort($low);

$up

=

quickSort($up);

return

array_merge($low,

array($v),

$up);

}

测试代码:

$startTime

=

microtime(1);

$arr

=

range(1,

10);

shuffle($arr);

echo

"before

sort:

",

implode(',

',

$arr),

"\n";

$sortArr

=

quickSort($arr);

echo

"after

sort:

",

implode(',

',

$sortArr),

"\n";

echo

"use

time:

",

microtime(1)

-

$startTime,

"s\n";

测试结果:

before

sort:

1,

7,

10,

9,

6,

3,

2,

5,

4,

8

after

sort:

1,

2,

3,

4,

5,

6,

7,

8,

9,

10

use

time:

0.0009009838104248s

时间复杂度

快速排序的时间复杂度在最坏情况下是O(N2),平均的时间复杂度是O(N*lgN)。

这句话很好理解:假设被排序的数列中有N个数。遍历一次的时间复杂度是O(N),需要遍历多少次呢?至少lg(N+1)次,最多N次。

1)

为什么最少是lg(N+1)次?快速排序是采用的分治法进行遍历的,我们将它看作一棵二叉树,它需要遍历的次数就是二叉树的深度,而根据完全二叉树的定义,它的深度至少是lg(N+1)。因此,快速排序的遍历次数最少是lg(N+1)次。

2)

为什么最多是N次?这个应该非常简单,还是将快速排序看作一棵二叉树,它的深度最大是N。因此,快读排序的遍历次数最多是N次。

您可能感兴趣的文章:PHP快速排序算法实例分析PHP四种排序算法实现及效率分析冒泡排序,插入排序,选择排序和快速排序PHP排序算法之快速排序(Quick

Sort)及其优化算法详解PHP递归实现快速排序的方法示例php

二维数组快速排序算法的实现代码PHP常用排序算法实例小结基本排序,冒泡排序,快速排序,插入排序PHP快速排序quicksort实例详解

关于“快速排序算法”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[香萱]投稿,不代表欧拉号立场,如若转载,请注明出处:https://cn.ooplay.net/oula/36.html

(1)

文章推荐

  • 从观兰茜坑新村到塘厦车站有多少公里

    网上有关“从观兰茜坑新村到塘厦车站有多少公里”话题很是火热,小编也是针对从观兰茜坑新村到塘厦车站有多少公里寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。驾车路线:全程约18.3公里起点:创鑫电脑科技1.从起点向正西方向出发,行驶370米,右转进入茜坑路2.沿

    2025年12月06日
    0310
  • 阳光房改造记

    网上有关“阳光房改造记”话题很是火热,小编也是针对阳光房改造记寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。多年前搬到家没多久,就建了这个阳光房,在花园靠后的位置,一面靠墙,三面用中空双层玻璃,顶上是夹胶毛玻璃,10平米大小,本来是想休闲娱乐用的,实际却被各

    2025年12月06日
    0310
  • internet是什么类型的网络

    网上有关“internet是什么类型的网络”话题很是火热,小编也是针对internet是什么类型的网络寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。互联网(internet),又称国际网络,指的是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连

    2025年12月06日
    0310
  • 宝马3系大灯高度如何调节_1

    网上有关“宝马3系大灯高度如何调节”话题很是火热,小编也是针对宝马3系大灯高度如何调节寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。宝马3系大灯高度如何调节?大灯高度调节可以打开机器的盖子。大灯后面有一个内六边形的塑料孔,往里看有一个十字。可以使用十字形螺丝

    2025年12月06日
    0310
  • 河南人口最多的5个县,看看人口第一大县是你的家乡吗

    网上有关“河南人口最多的5个县,看看人口第一大县是你的家乡吗”话题很是火热,小编也是针对河南人口最多的5个县,看看人口第一大县是你的家乡吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。河南人口第一大县不是我的家乡,河南人口最多的5个县如下:1、永城市,永城市

    2025年12月06日
    0310
  • 河南太康到浙江义乌坐火车怎么转车啊!

    网上有关“河南太康到浙江义乌坐火车怎么转车啊!”话题很是火热,小编也是针对河南太康到浙江义乌坐火车怎么转车啊!寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。走周商高速到商丘,有以下十种方案:商丘到义乌火车时刻表2011年05月11日更新商丘到义乌

    2025年12月06日
    0310
  • 属蛇的戴玉好还是金

    网上有关“属蛇的戴玉好还是金”话题很是火热,小编也是针对属蛇的戴玉好还是金寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。属蛇的戴玉好还是金属蛇的戴玉好还是金,黄金一直以来都是许多人的心头好,不少人喜欢给自己备一些黄金

    2025年12月06日
    0310
  • 大专还是本科当兵好?

    网上有关“大专还是本科当兵好?”话题很是火热,小编也是针对大专还是本科当兵好?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。第一、参军入伍的时候会优先征集本科毕业生。国家征兵的重点是大学毕业生,但是会优先征集学历高的大学毕业生,如果还有研究生参军入伍的话,会

    2025年12月06日
    0310
  • 对氯甲苯能使高锰酸钾褪色吗

    网上有关“对氯甲苯能使高锰酸钾褪色吗”话题很是火热,小编也是针对对氯甲苯能使高锰酸钾褪色吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。能。对氯甲苯能与高锰酸钾发生氧化反应,使高锰酸钾褪色,一定量的对氯甲苯和适量KMnO4在93℃反应一段时间后,会发生氧化还

    2025年12月06日
    0310
  • 2千元学的重庆小面技术配方(二)

    网上有关“2千元学的重庆小面技术配方(二)”话题很是火热,小编也是针对2千元学的重庆小面技术配方(二)寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。四、猪油的制作方法最好是市场上买回猪板油,切成4厘米见方的块,冷锅加入少量水,将猪油放入锅中,慢慢熬制,

    2025年12月06日
    1309
  • 全网营销是什么?

    网上有关“全网营销是什么?”话题很是火热,小编也是针对全网营销是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。全网整合营销的简称,指将产品规划、产品开发、网站建设、网站运营、品牌推广、产品分销等一系列电子商务内容集成于一体的新型营销模式,是集传统网络,

    2025年12月06日
    1309
  • 铁路和地铁工作哪个更好?

    网上有关“铁路和地铁工作哪个更好?”话题很是火热,小编也是针对铁路和地铁工作哪个更好?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。又是一年快要毕业的时候了,对于轨道交通行业的学生来说,面临着人生最重要的时刻,就业!每个人都在迷茫中,到底选择什么工作?从事专

    2025年12月06日
    1309

发表回复

本站作者才能评论

评论列表(3条)

  • 香萱的头像
    香萱 2025年12月06日

    我是欧拉号的签约作者“香萱”

  • 香萱
    香萱 2025年12月06日

    本文概览:网上有关“快速排序算法”话题很是火热,小编也是针对快速排序算法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。第一趟排序后数组中的元素排...

  • 香萱
    用户120609 2025年12月06日

    文章不错《快速排序算法》内容很有帮助