zoukankan      html  css  js  c++  java
  • 决策树模型

    这一节决策树其实是对前面的堆排序,快排等是最优的比较算法的证明,

    首先说下《算法导论》上对决策树的定义:一棵决策树是一棵满二叉树(注意看下面解释),表示某排序算法作用于给定输入所做的所有比较,而控制结构,移动等都被忽略了。

    注意:这里个人认为定义是错误的,决策树不是一棵满二叉树,连完全二叉树都不是。

    首先看看只有三个元素时,决策树的图:

    jueceshu

    在决策树中,每个内结点都用i:j表示比较下标为i数组元素与下标为j的数组元素的大小。每一个叶结点是一个n个元素的全排列。

    所以排序算法的执行对应于遍历一条从树的根到叶结点的路径!

    因为有n个结点,根据高中学的组合排列知识,知道有n!个情况,也就是n!个叶子结点。

    在决策树中,从根到任意一个可达叶结点之间的最长路径的长度,表示对应的排序算法中最坏情况下的比较次数。这样,一个比较算法的最坏情况的比较次数就是其决策树的高度。

    定理8.1证明了任意一个比较算法在最坏情况下都需要做Ω(n lg n)次的比较。这个证明比较简单,可以看看书上的证明过程。

  • 相关阅读:
    poj 3669 Meteor Shower
    poj 3009 Curling 2.0
    poj 1979 Red and Black
    区间内素数的筛选
    九度oj 题目1347:孤岛连通工程
    poj 3723 Conscription
    poj 3255 Roadblocks
    Luogu P3975 [TJOI2015]弦论
    AT2165 Median Pyramid Hard 二分答案 脑洞题
    后缀自动机多图详解(代码实现)
  • 原文地址:https://www.cnblogs.com/hdk1993/p/4652540.html
Copyright © 2011-2022 走看看