有实现同一功能的两个算法():和(),其中(),的渐进时间复杂度T1(n)=O(2n),A2的渐进时间复杂度是T2(n)=()(n2)。仅就时间复杂度面言,具体分析这两个算法哪个好。
可将算法的时间复杂度降低到O(nlog2n),算法的思想是对于关键码序列(keylow,keylow+1,…,keyhigh),轮流以keyk为根,k=low,low+1,…,h,求使得|W[low-1][k-1]-W[k][high]|达到最小的k,用keyk作为由该序列构成的拟最优二叉搜索树的根。然后对以keyu为界的左子序列和右子序列,分别施行同样的操作,建立根keyk的左子树和右子树,试编写一个函数,实现上述试探算法。要求该函数的时间复杂度应为O(nlog2n)。
假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的函数形式表示) 。
int Time(in tn) {
count=0; x=2;
while(x<n p="" {<="">
x*=2; count++;
}
return count;
}
采用2.39题给定的条件和存储结构,编写求的算法,将结果多项式存放在新辟的空间中,并分析你的算法的时间复杂度。