Algorithm 构造决策树的算法
在今晚的一次采访中,我被要求回答这个问题: 为该算法的任意三个输入构建决策树:Algorithm 构造决策树的算法,algorithm,design-patterns,graph,tree,Algorithm,Design Patterns,Graph,Tree,在今晚的一次采访中,我被要求回答这个问题: 为该算法的任意三个输入构建决策树: 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]) 对于i=1到n-1 do 如果L[i]>L[i+1] 互换(L[i],L[i+1]) 对于i=n-1到2 do 如果L[i]i
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])
对于i=1到n-1 do
如果L[i]>L[i+1]
互换(L[i],L[i+1])
对于i=n-1到2 do
如果L[i]
我认为我的解决方案是不正确的,因为我得到了16片叶子。我做了以下工作:
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}
根目录:
{a,b,c}
/ \
(i>i+1)/\(i,每次从每个节点得到两个答案,最终得到16个叶子
这是正确的吗?如果不是,应该怎么做?对于n=3
,第二个循环只运行一次,对于i=2
。因此,每个节点有两个答案,就有2*4=8个叶子