好的,我很难完全理解递归关系。
例如,如果我在最坏的情况下使用Θ符号分析快速排序,请为数组输入未排序的正数;
当基本情况n <= 3时,我使用插入排序对小型数组进行排序。 时间:O(1)或O(n ^ 2)?
我使用线性搜索将枢轴设置为所有元素的中位数。 时间:Θ(n)
对枢轴进行左右分割并执行递归。 时间:我认为2 * T(n / 2)
重复会是: T(n)= O(1)+Θ(n)+ 2 * T(n / 2)那么?
某事告诉我,基本情况将花费O(n ^ 2)时间,因为如果输入足够小,那将是最坏的情况。 那会给我复发吗? T(n)= O(n ^ 2)+Θ(n)+ 2 * T(n / 2)?
答案 0 :(得分:2)
将所有内容放在一起(假设枢轴始终是中位数,并且每次都用O(N)来找到枢轴):
Best_Case = Worst_Case(因为枢轴始终是中间值)
F(3) = F(2) = F(1) = 1
F(n) = 2F(N/2) + 2N
= 2(2F(N/2^2) + 2(N/2)) + 2N
= 2(2)F(N/2^2) + 2N + 2N
= 2(3)F(N/2^3) + 3(2)N
= 2(LogN)F(N/N) + (2N)LogN
= O(NlogN)