算法
啊啊啊西吧
写点什么呢
展开
-
异或运算的应用与nimm博弈
异或运算的性质 1、交换律 2、结合律(即(a^b)^c == a^(b^c)) 3、对于任何数x,都有x^x=0,x^0=x 4、自反性 A XOR B XOR B = A xor 0 = A 5、消去率 a^b=c^b;则一定有a=c ,这一条是and or都不能满足的,只有+ -才会有的 应用1:所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果原创 2017-04-28 16:52:31 · 1035 阅读 · 0 评论 -
有向无环图:AOV网与AOE网
有向无环图(Directed Acycline Graph, DAG)是一类特殊的有向图。DAG有着广泛应用,AOE网和AOV网都是DAG的典型应用。AOV网(Activity On Vertex NetWork)用顶点表示活动,边表示活动(顶点)发生的先后关系。 若网中所有活动均可以排出先后顺序(任两个活动之间均确定先后顺序),则称网是拓扑有序的,这个顺序称为网上一个全序。(详情参见离散数学/图转载 2017-05-03 10:58:22 · 5004 阅读 · 0 评论 -
N皇后问题的c++解法
N皇后问题: 国际象棋中皇后的势力范围覆盖其所在的行、列以及两条对角线,现在考察如下问题:如何在n x n的棋盘上放置n个皇后,使得她们彼此互不攻击 对于任何整数:n>=4,这就是n皇后问题。我们常说的8皇后问题也就是n为8的时候 首先,讲一讲思路,大致思路就是:我们把n个皇后分别放在n行中的第一个位置,然后挨行试探,回溯 譬如,第一个皇后在第一行第一列,试探下一行的皇后,将其放在不会与之前原创 2017-05-05 13:04:33 · 16913 阅读 · 0 评论 -
图概论
有向图的通用性更强,因为无向图和混合图都可以转化为有向图 n个顶点无向图最多n(n-1)/2 条边 n个顶点有向图n(n-1) 条边 G=(V,E) vertex edge E=(u,v)图算法的时间空间性能,都与图结构的具体实现方式紧密相关,假定图的顶点个数为n,边数为e邻接矩阵:是图ADT最基本的实现方式,使用方阵A[n][n]表示由n个顶点构成的图,其中每个单元负责描原创 2017-05-25 16:58:28 · 529 阅读 · 0 评论 -
常用排序算法的c++实现
闲来没事手打了一遍几种排序算法,分享以供大家参考:#include<iostream>using namespace std;//交换数组中2个元素的值void swap(int &a, int &b){ int tmp = a; a = b; b = tmp;}//冒泡排序最简单的暴力解法void bubble_sort(int a[], int n){原创 2017-05-25 21:56:57 · 297 阅读 · 0 评论 -
huffman编码解码与huffman树
定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。构建huffman树:1.根据给定的n个权值{w1,w2,…,wn}构成二叉树集合F={T1,T2,…,Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树为空.2.在F中选取两棵转载 2017-05-07 16:15:35 · 1025 阅读 · 0 评论 -
二叉树遍历:已知前序中序输出后序/已知后序中序输出前序
例子:前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右) 后序:3, 4, 2, 6, 5, 1(左右根) 1、先说根据前序中序求后序,前序总是沿着根往树的左边一直跑,所以前序遍历的前面肯定是根节点 中序则是按照:左—–根—–右 的顺序排列,其中左,右子树按照同样的结构,所以我们可以从前序遍历的根节点入手,迅速定位中序序列的结构中左子树和原创 2017-05-07 17:52:47 · 7688 阅读 · 4 评论 -
根据前序中序遍历,重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路:和我之前一篇博客,根据前序中序遍历确定后序遍历的文章一个思路,都是抓住前序遍历中的根节点位置,递归的把中序遍历中的根 与左右子树拿出来,然后无论是原创 2017-05-08 22:16:59 · 1312 阅读 · 0 评论