题目内容
(请给出正确答案)
[主观题]
请分别用递归和非递归方法实现查找二叉树中的最大元素的算法。
答案
查看答案
第3题
关于kd-树查找算法kdSearch()(教244页算法8.2),试证明以下结论:
a)在树中某一节点发生递归,当且仅当与该节点对应的子区域,与查询区域的边界相交;
b)若令Q(n)=规模为n的子树中与查询区域边界相交的子区域(节点)总数,则有:Q(n)=2+2Q(n/4)=o(√n)。
c)kdSearch()的运行时间为:o(r+√n),其中r为实际命中并被报告的点数。
d)进一步地,试举例说明,单次查询中的确可能有多达Ω(√n)个节点发生递归,故以上估计是紧的。
e)若矩形区域不保证与坐标轴平行,甚至不是矩形(比如圆),则上述结论是否依然成立?
第4题
第5题
第8题
文法GIE]是LL(1)文法:
其中E,F,E',F'为非终结符。
对文法G[E]构造递归下降分析程序。
第11题
如果在合并排序算法的分割步骤中,将数组a[0:n-1]划分为[ ]个子数组,每个子数组中有O()个元素,然后递归地对分割后的子数组进行排序,最后将所得到的[ ]个排好序的子数组合并成所要求的排好序的数组a[0;n-1].设计一个实现上述策略的合并排序算法,并分析算法的计算复杂性.