算法摘记
匿名侠士
非典型的搬砖工
展开
-
红黑树
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。转载 2014-06-28 21:04:25 · 555 阅读 · 0 评论 -
BFS 宽度优先搜索 算法摘记
源自网络与书籍 自己学习 算法摘记转载 2014-08-14 12:28:11 · 3763 阅读 · 0 评论 -
B树 算法摘记
源自网络与书籍 自己学习 算法摘记转载 2014-08-13 20:03:12 · 1001 阅读 · 0 评论 -
母函数 算法摘记
母函数又称生成函数。定义是给出序列:a0,a1,a2,.......ak,......,那么函数G(x)=a0+a1*x+a2*x2+......ak*xk称为序列a0,a1,a2,.......ak,......的母函数(即生成函数)。例如:序列1,2,3.......n的生成函数为:G(x)=x+2x2+3x3+........nxn。点此链接:百度百科特别的当序列为:1,1,原创 2014-10-16 09:10:07 · 999 阅读 · 0 评论 -
斐波那契堆 算法摘记
源自网络与书籍 自己学习 算法摘记转载 2014-08-14 16:09:14 · 1877 阅读 · 0 评论 -
卡特兰数 算法摘记
卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。卡塔兰数的一般项公式为 另类递归式: h(n)=((4*n-2)/(n+1))*h(n-1);前几项为 (OEIS中的数列A000108): 1, 1, 2, 5, 14, 42, 132, 429,转载 2014-10-17 11:10:48 · 777 阅读 · 0 评论 -
贪心算法 摘记
源自网络与书籍 算法z转载 2014-08-12 21:04:10 · 609 阅读 · 0 评论 -
高斯消元法 算法摘记
HDU 3571 高斯消元法高斯消元法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。首先,先介绍程序中高斯消元法的步骤:(我们设方程组中方程的个数为equ,变元的个数为var转载 2014-10-17 09:01:34 · 997 阅读 · 0 评论 -
最大流 算法摘记
源自网络与书籍 自己学习 算法摘记转载 2014-08-19 11:12:59 · 956 阅读 · 0 评论 -
强连通分量 算法摘记
转载 2014-11-24 09:33:17 · 784 阅读 · 0 评论 -
背包九讲 算法摘记
背包问题九讲 本文题为《背包问题九讲》,从属于《动态规划的思考艺术》系列。这系列文章的第一版于 2007 年下半年使用 EmacsMuse 制作,以 HTML 格式发布到网上,转载众多,有一定影响力。内容:第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问转载 2014-12-07 22:37:57 · 774 阅读 · 0 评论 -
算法导论 随记本1-4
//插入排序 o(n^2) P10for j=2 to A.length key=A[j] i=j-1 while i>0 && A[i]>key A[i+1]=a[i] i-- A[i+1]=key //归并排序 o(nlgn) P17merge(A,p,q,r)//合并 p~q q+1~r{ n1=q-p+1 n2=r-q for i=1 to n1 L原创 2015-03-16 21:47:57 · 453 阅读 · 0 评论 -
平衡树 算法摘记
平衡树是计算机科学中的一类改进的二叉查找树。一般的二叉查找树的查询复杂度是跟目标结点到树根的距离(即深度)有关,因此当结点的深度普遍较大时,查询的均摊复杂度会上升,为了更高效的查询,平衡树应运而生了。在这里,平衡指所有叶子的深度趋于平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低。对一棵查找树(search tree)进行查询/新增/删除 等动作, 所花的时间与树的转载 2015-04-22 11:07:57 · 833 阅读 · 0 评论 -
计数排序 实现
计数排序 具体实现见算法导论:#include#includeusing namespace std;#define N 8void countSort(int a[],int n,int b[],int k)//a输入,b输出,k最大数{ int c[6]; int i; for(i=0;i<=k;i++) c[i]=0; for(i=0;i<n;i++) c[原创 2015-04-11 15:45:10 · 428 阅读 · 0 评论 -
算法摘记 拓扑排序
在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序(英语:Topological sorting)。每个顶点出现且只出现一次;若A在序列中排在B的前面,则在图中不存在从B到A的路径。也可以定义为:拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面[1]转载 2014-09-17 08:48:49 · 588 阅读 · 0 评论 -
字典树 算法摘记
转 http://www.wutianqi.com/?p=1359又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 字典树与字典很相似,当你要转载 2014-09-16 08:50:50 · 459 阅读 · 0 评论 -
算法摘记 线段树
线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,因此有时需要离散化让空间压缩。原创 2014-09-19 10:30:36 · 705 阅读 · 0 评论 -
深度优先搜索 DFS 算法摘记
源自网络与书籍 自己学习 算法摘记转载 2014-08-15 16:51:27 · 627 阅读 · 0 评论 -
中国剩余定理 算法摘记
中国剩余定理是数论中的一个关于一元线性同余方程组的定理,说明了一元线性同余方程组有解的准则以及求解方法。也称为孙子定理转载 2014-10-13 10:39:12 · 2534 阅读 · 0 评论 -
动态规划 摘记
动态规划常常适用于有重叠子问题[2]和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。转载 2014-06-30 21:47:50 · 683 阅读 · 0 评论 -
算法摘记 树状数组
树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值。转载 2014-09-19 09:10:03 · 493 阅读 · 0 评论 -
堆排序 算法摘记
详细见算法导论:原创 2014-09-21 21:48:32 · 535 阅读 · 0 评论 -
算法摘记 最近公共祖先LCA Tarjan算法
http://kmplayer.iteye.com/blog/604518http://www.cnblogs.com/ylfdrib/archive/2010/11/03/1867901.html转载 2014-09-20 11:24:36 · 519 阅读 · 0 评论 -
RMQ 算法摘记
http://www.cnblogs.com/cnjy/archive/2009/08/30/1556566.htmlRMQ(Range Minimum/Maximum Query)问题: RMQ问题是求给定区间中的最值问题。当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的算法效率不够。可以用线段树将算法优化到O(logn)(在线段树中转载 2014-09-22 09:51:31 · 819 阅读 · 0 评论 -
KMP算法 算法摘记
字符串匹配的KMP算法1. 首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。 2. 因为B与A不匹配,搜索词再往后移。 3. 就这样,直到字符串有一个字符,与搜索词的第一个字符相同为止。 4转载 2014-09-11 21:06:03 · 532 阅读 · 0 评论 -
线段相交 算法摘记
线段相交struct point{ double x,y; }; struct bian{ point a,b; }; //计算几何部分 线段相交的内容参考算法导论P577 double xmult(point a,point b,point c)//大于零代表a,b,c左转 { return (b.x-a.x)*原创 2014-09-12 16:41:48 · 601 阅读 · 0 评论 -
七大内部排序算法总结(插入排序、希尔排序、冒泡排序、简单选择排序、快速排序、归并排序、堆排序)
转自:http://blog.csdn.net/to_be_it_1/article/details/37866391#comments写在前面: 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。因此排序掌握各种排序算法非常重要。对下面介绍的各个排序,我们假定所有排序的关键转载 2014-08-16 15:59:52 · 1182 阅读 · 0 评论 -
NP完全性 算法摘记
多项式时间:在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。通俗点来说,多项式时间就是指时间复杂度是个多项式,或者说,就是这个程序运行的时间随着数据规模n变化的函数为f(n),那么,f(n)是个多项式函数,那么就可以说是控制在多项式之内。举个例子,现在从n阶图中找两点的最短路径,复杂度为n^2级别(即O(n^2),O是大写欧),而n^2对于n是多项式(单项式当然也转载 2014-09-15 15:54:20 · 632 阅读 · 0 评论 -
二叉搜索树 实现 算法摘记
二叉搜索树,详情见算法导论,直接代码。原创 2014-09-24 22:15:29 · 533 阅读 · 0 评论 -
博弈论 SG函数 算法摘记
http://www.cnblogs.com/Knuth/archive/2009/09/05/1561007.html转载 2014-10-24 08:54:48 · 1637 阅读 · 0 评论 -
博弈论 算法摘记
有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。转载 2014-10-26 16:54:32 · 512 阅读 · 0 评论 -
快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结
快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结(1) 1与0的特性: 1是任何整数的约数,即对于任何整数a,总有1|a. 0是任何非零整数的倍数,a≠0,a为整数,则a|0. (2) 若一个整数的末位是0、2、4、6或8,则这个数能被2整除。 (3) 若一个整数的数字和能被3整转载 2014-11-11 17:35:48 · 4079 阅读 · 0 评论 -
欧拉函数 算法摘记 数论
定义: 对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目;例如: φ(8) = 4, 因为1,3,5,7均和8互质。性质:1. 若p是质数,φ(p)= p-1.2. 若n是质数p的k次幂,φ(n)= (p-1)p^(k-1) 因为除了p的倍数都与n互质3. 欧拉函数是积性函数,即若m,n互质,φ(mn)= φ(m)φ(n)转载 2014-10-11 14:03:09 · 535 阅读 · 0 评论 -
二分图 最大匹配 算法摘记
二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。转载 2014-10-01 21:28:33 · 1240 阅读 · 0 评论 -
扩展欧几里得算法 算法摘记
转:http://zh.wikipedia.org/wiki/扩展欧几里得算法转载 2014-10-13 10:37:16 · 514 阅读 · 0 评论 -
快速排序 算法摘记
详细见算法导论,直接上实现;原创 2014-09-21 21:49:01 · 632 阅读 · 0 评论