使用基于决策树比较的模型证明下限
Prove lower bound using decision tree comparison based model
您将如何使用决策树来证明搜索 n 个元素的排序列表具有基于比较的模型的下界 Omega(log n)?
请注意,搜索问题的下限必须至少与在排序数组中查找条目的问题一样大,假设该条目已经存在。为了解决这个新问题,将您拥有的相关信息表示为树中的一个节点,具体来说,一个节点是您的值可能位于其中的一组索引。最初,您的值可以对应于任何索引,因此您的根将为 {0, 1, ....,n}。
每当您进行比较时,由于数组已排序,因此存在三种可能的结果:您要查找的值大于与之比较的值,或者小于该值,或者等于到它,所以你已经把你可能的索引集分成了三个。当当前节点代表一个单例集时,你的算法解决了这个问题,比较的次数对应树的高度。
将树分成 n 个最小高度的单叶的树是 log(n) 阶,因此这是任何算法的下限。
如果你必须使用决策树...
对于给定的长度 n,comparison-based 算法的行为可以表示为决策树,其中每个叶子都是您在以下序列之后得到的结果比较和结果由到那片叶子的路径表示。
您已经证明,在具有 n 个叶子且分支因子为 3 的决策树中,到叶子的最长路径必须至少有 ceil(log_3(n)) 个内部节点。
你可以归纳地证明这一点,证明它对 {1,2,3} 中的 n 如此,这意味着它对所有更大的 都是正确的]n,因为如果一个节点的子树有n个叶子,那么它的一个children需要至少有n/3离开。
您将如何使用决策树来证明搜索 n 个元素的排序列表具有基于比较的模型的下界 Omega(log n)?
请注意,搜索问题的下限必须至少与在排序数组中查找条目的问题一样大,假设该条目已经存在。为了解决这个新问题,将您拥有的相关信息表示为树中的一个节点,具体来说,一个节点是您的值可能位于其中的一组索引。最初,您的值可以对应于任何索引,因此您的根将为 {0, 1, ....,n}。
每当您进行比较时,由于数组已排序,因此存在三种可能的结果:您要查找的值大于与之比较的值,或者小于该值,或者等于到它,所以你已经把你可能的索引集分成了三个。当当前节点代表一个单例集时,你的算法解决了这个问题,比较的次数对应树的高度。
将树分成 n 个最小高度的单叶的树是 log(n) 阶,因此这是任何算法的下限。
如果你必须使用决策树...
对于给定的长度 n,comparison-based 算法的行为可以表示为决策树,其中每个叶子都是您在以下序列之后得到的结果比较和结果由到那片叶子的路径表示。
您已经证明,在具有 n 个叶子且分支因子为 3 的决策树中,到叶子的最长路径必须至少有 ceil(log_3(n)) 个内部节点。
你可以归纳地证明这一点,证明它对 {1,2,3} 中的 n 如此,这意味着它对所有更大的 都是正确的]n,因为如果一个节点的子树有n个叶子,那么它的一个children需要至少有n/3离开。