摘要: 1. 图的表示 1)临接矩阵 使用二维数组arr[N][N]表示一个图。 a. N 为图的顶点个数,矩阵的对角线全为0。 b. 两个顶点连通的话,矩阵的值为1 c. 某一行的和表示该顶点的出度。某一列的和表示该顶点的入度 d. 有权值的图,矩阵元素不再是0,1表示是否连通,而是把元素值表示为权值。不 阅读全文
posted @ 2018-11-15 22:17 二狗啸地 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 概念 回溯法是把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。 首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐 阅读全文
posted @ 2018-11-07 23:26 二狗啸地 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 子集树 当所给的问题是从n个元素的集合S中找出满足某种性质的子集时,相应的解空间称为子集树。比如,01背包问题就是子集树。这类问题通常有2^n个叶子节点,总节点个数是2^(n+1)-1。遍历子集树的任何算法都需要 O(2^n)的时间。 选取数字: 排列树 当所给问题是确定n个元素满足某种性质的排列时 阅读全文
posted @ 2018-11-07 23:22 二狗啸地 阅读(8212) 评论(0) 推荐(1) 编辑
摘要: 二叉树查找效率很高,但是它有一个缺点。类似下面一棵树,查找效率是线性的: 定义 于是,引出了平衡二叉树(Self-balancing binary search tree),也叫 AVLTree 它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 使用它, 阅读全文
posted @ 2018-11-06 22:31 二狗啸地 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 特征 1.左子树上所有结点的值均小于或等于它的根结点的值 2.右子树上所有结点的值均大于或等于它的根结点的值。 3.左、右子树也分别为二叉排序树。 如下就是一棵典型的二叉查找树 因为查找使用二分查找法,所以查询时间复杂度是 O(lg2) 操作 二叉树的操作也就是增删查、遍历 查找就是二分查找。增添节 阅读全文
posted @ 2018-11-06 21:50 二狗啸地 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 官方网站:http://www.graphviz.org/ Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源工具包。DOT是一种图形描述语言,非常简单的, Graphviz就是用来处理这种语言的工具。只需要简单了解一下DOT语言,就可以 阅读全文
posted @ 2018-10-27 14:56 二狗啸地 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 总体布局 在32位系统中,linux进程的虚拟地址空间布局如下: 进程虚拟地址空间为 0x0 ~ 0xFFFFFFFF,一共4G大小。其中低位的3G为用户空间,高位的1G为内核空间。空间的各个部分为: 保留区 它并不是一个单一的内存区域,而是对地址空间中受到操作系统保护而禁止用户进程访问的地址区域的 阅读全文
posted @ 2018-10-26 21:48 二狗啸地 阅读(1753) 评论(0) 推荐(1) 编辑
摘要: c语言支持可变参数函数。这里的可变指,函数的参数个数可变。 其原理是,一般情况下,函数参数传递时,其压栈顺序是从右向左,栈在虚拟内存中的增长方向是从上往下。所以,对于一个函数调用 func(int a, int b, int c); 如果知道了参数a的地址,那么,可以推导出b,c的地址 对于上面的代 阅读全文
posted @ 2018-10-26 21:47 二狗啸地 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 使用 c语言的宏是在预处理时候对字符进行简单替换。 优点:1.如果要改一个变量,只需要改宏就可以了,也就是只改一次;2.宏函数展开和普通函数一样,但是它没有普通函数调用的过程,不需要压栈出栈等操作,所以效率高。 缺点:增大了编译后可执行文件的大小 比如常见的 变量使用括号包围,否则这样调用时 结果并 阅读全文
posted @ 2018-10-26 20:28 二狗啸地 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 查询速度非常快的数据结构,查询时间复杂度是O(1)。 #ifndef _COMMON_H_ #define _COMMON_H_ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #endif 阅读全文
posted @ 2018-10-16 22:59 二狗啸地 阅读(137) 评论(0) 推荐(0) 编辑