A.O(1)
B.O(n2)
C.O(n)
D.O()
求整数 n(n≥0)阶乘的算法如下,其时间复杂度是 int fact(int n) { if (n<=1)return 1; return n*fact(n-1); }
A.O(log2n)
B.O(n)
C.(nlog2n)
D.O(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)。
A.O(n^2)
B.O(logn)
C.O(n)
D.O(nlogn)