摘要:
1. 图的表示 1)临接矩阵 使用二维数组arr[N][N]表示一个图。 a. N 为图的顶点个数,矩阵的对角线全为0。 b. 两个顶点连通的话,矩阵的值为1 c. 某一行的和表示该顶点的出度。某一列的和表示该顶点的入度 d. 有权值的图,矩阵元素不再是0,1表示是否连通,而是把元素值表示为权值。不 阅读全文
摘要:
概念 回溯法是把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。 首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐 阅读全文
摘要:
子集树 当所给的问题是从n个元素的集合S中找出满足某种性质的子集时,相应的解空间称为子集树。比如,01背包问题就是子集树。这类问题通常有2^n个叶子节点,总节点个数是2^(n+1)-1。遍历子集树的任何算法都需要 O(2^n)的时间。 选取数字: 排列树 当所给问题是确定n个元素满足某种性质的排列时 阅读全文
摘要:
二叉树查找效率很高,但是它有一个缺点。类似下面一棵树,查找效率是线性的: 定义 于是,引出了平衡二叉树(Self-balancing binary search tree),也叫 AVLTree 它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 使用它, 阅读全文
摘要:
特征 1.左子树上所有结点的值均小于或等于它的根结点的值 2.右子树上所有结点的值均大于或等于它的根结点的值。 3.左、右子树也分别为二叉排序树。 如下就是一棵典型的二叉查找树 因为查找使用二分查找法,所以查询时间复杂度是 O(lg2) 操作 二叉树的操作也就是增删查、遍历 查找就是二分查找。增添节 阅读全文