首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造算法决策树

构造算法决策树
EN

Stack Overflow用户
提问于 2011-11-15 08:13:49
回答 1查看 201关注 0票数 0

在今天晚上的一次采访中,我被要求回答这个问题:

为该算法的任意三个输入构建决策树:

代码语言:javascript
复制
For i = 1 to n - 1 do
    If L[i] > L[i+1] 
       swap(L[i],L[i+1])
For i = n-1 downto 2 do
    If L[i] < L[i-1] 
       swap(L[i],L[i-1])

我认为我的答案是错误的,因为我得到了16个叶子。我做了以下工作:

代码语言:javascript
复制
                                    Root : 
                                  {a, b, c}
                                    /   \
                       (i>i+1)     /     \  (i<i+1)
                                  /       \
                              {b,a,c}        {a,b,c}
                               /   \          /   \
                              /     \        /     \
                             /       \      /       \
                       {b,c,a}   {b,a,c}   {a,c,b}   {a,b,c}

这完成了第一个循环,然后我以同样的方式将输入扩展到第二个循环,在每个节点假设一个决策<和一个决策>,每次都会从每个节点得到两个答案,最终给你16个叶子。

这是正确的吗?若否,应如何处理?

EN

回答 1

Stack Overflow用户

发布于 2011-11-15 08:30:01

对于n = 3,第二个循环只运行一次,对于i = 2。因此,每个节点有两个答案,您将得到2*4 =8个叶子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8129989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档