+ -
当前位置:首页 → 问答吧 → 请大家帮我看看这个程序段的时间复杂度是多少?

请大家帮我看看这个程序段的时间复杂度是多少?

时间:2011-08-26

来源:互联网

[code=C/C++][/code]
void mergesort(int i,int j)
{
int m;
if(i!=j)
{
m=(i+j)/2;
mergesort(i,m);
mergesort(m+1,j);
merge(i,j,m);
}
}
其中,mergesort()用于数组a[n]的归并排序,调用方式为mergesort(0,n-1);merge()用于两个有序子序列的合并,是非递归函数,它的时间复杂度为O(n).最好有分析过程,谢了!

作者: keke19870810   发布时间: 2011-08-26

T(n) = 2*T(n/2)+O(n)
so T(n) = theta(nlgn)

作者: genio   发布时间: 2011-08-27