首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何分析这个特定版本的快速排序?

如何分析这个特定版本的快速排序?
EN

Stack Overflow用户
提问于 2017-01-26 00:38:47
回答 1查看 35关注 0票数 0

我有这个伪代码,我想分析这个算法的时间复杂度,但我对此一无所知

代码语言:javascript
复制
Proc Sort(A,l,r)
 if(r-l+1<4)
    then Quicksort(A,l,r)
    else
     Sort(A,l,r-3)
     Sort(A,l+3,r)

所以我知道,如果数组的元素小于4,我们通过快速排序来传递它,否则我们将数组的大小减少3,然后传递左边和右边的部分,所以我们将这样做,直到我们得到大小为n<4的数组为止,问题是我无法得到递归,我不确定这个算法在最坏情况分析中是否更有效

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2017-01-26 02:13:46

好吧,不管这个排序函数是否真的起作用,计算运行时间的方法在这里都很简单:

将运行时的数学表达式写成数组大小的函数:

T(N) = ??

好吧,如果N <= 4,那么我们调用快速排序。现在,我们没有可用的函数定义,但不管怎样,因为它只会调用最大大小为4的输入,所以我们可以将其运行时视为常量,并将其命名为C。

如果N为4,那么我们再次调用>=,数组小3。

所以:

对于N >= 4,T(N)是2* T(N-3)。

现在,这应该为您提供了运行时分析所需的所有信息。你为什么不在这里试试,当你遇到困难的时候再来找我们呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41856937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档