这是一个作业问题,我不是在找到complixity,而是在尽我所能!证明修改后快速排序的运行时间= O(Nk)
- 三路分区是对快速排序的修改,它将元素分成小于,等于和大于数据透视的组。只有更小和更大的元素组需要递归排序。显示如果有N个项目但只有k个唯一值(换句话说,有许多重复项),则此修改为快速排序的运行时间为O(Nk)。
我尝试:
树子程序将在这些指数:
平均情况我认为是有重复的子程序项目将等于(NK)
- 第一:从0 - 至第(i-1)
- 二:I - (I +( NK-1))
- 第三:(ⅰ+ NK) - (N-1)
- 比较次数=(NK)-1
所以,
T(n) = (n-k)-1 + Sigma from 0 until (n-k-1) [ T(i) + T (i-k)]
然后我“M不知道我怎么我会继续:S
这可能是一个非常糟糕的开局,但:$ 希望找到一个帮助
你也可以试试这里:[理论计算机科学(StackExchange)](http://cstheory.stackexchange.com/)。 – Groo 2011-12-22 11:47:32
快速排序通常只分析一般情况。这是否也是这种情况,或者你说的是最坏的情况? – 2011-12-22 12:07:30
@格罗,看来我正在寻找答案,但thnx! – Sosy 2011-12-22 12:19:04