为mergesort算法创建决策树

时间:2019-06-16 23:40:45

标签: algorithm sorting merge mergesort decision-tree

在我的作业中,我需要为任意输入S = {a,b,c}创建n = 3的决策树。

这是我的递归调用树。 S = {a,b,c}变成S = {a}和S = {b,c},而S = {b,c}变成S = {b}和S = {c}。在基本情况下,我有S = {a},S = {b}和S = {c}。

当我将S = {b}与S = {c}合并时,我只有1个决策,请检查b

b和c的先前合并返回的所有内容均与S = {a}合并。

在S = {a}和S = {b,c}的合并中,我有几个决定。我首先检查a

这使我陷入困境。如何将所有工作组合到一个决策树中?我可以毫无问题地为迭代算法创建决策树,但是由于该算法是递归的,所以我很困惑。

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

您必须从最深层次的递归开始遵循补丁。在这种情况下,树的顶部是“ if(b <= c)”。然后,如您已经提到的,如果为true,则为“ if(a <= b”)S = {a,b,c} else“ if(a <= c”)S = {b,a,c}“”否则S = {b,c,a}”,那么当“ if(b <= c)”为false时,模式相似。

我不确定这一点。在n = 4的情况下,您有24个可能的排列,对于n = 5,则有120个排列,是相当大的树。

相关问题