![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法理论
「已注销」
欢迎关注微信公众号【我吃你家米了】,回复关键字【资料】获取各种学习资源
展开
-
GCD之辗转相除法的证明
gcd(a,b)=gcd(b,a mod b)证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数假设d 是(b,a mod b)的公约数,则 d | b , d |r ,但是a = kb +r 因此d也是(a,b)的公约数因此(a,b)和(b,a m原创 2017-11-14 11:02:49 · 401 阅读 · 0 评论 -
Prim最小生成树算法
初始无向图Prim算法思想:将图中的节点分为两部分,一部分在集合U中(已添加到生成树中的节点的集合),另一部分在集合V-U中,V代表图中的全部节点对于每一个节点,对应一个closedge数组中的元素,拥有两个域:adjvex:与其相邻的节点v,它总是U中的节点lowcost:与节点v的权值从任意一个节点n开始,将n并入集合U,n的lowcost置为0,初始化closedge数组中n之外的所有元素的...原创 2018-03-15 20:12:13 · 426 阅读 · 0 评论 -
深搜与广搜模板 poj 3278
深搜与广搜模板:BFS:#include#include#include#includeusing namespace std;const int maxn=100;bool vst[maxn][maxn]; // 访问标记int dir[4][2]= {0,1,0,-1,1,0,-1,0}; // 方向向量struct State { // BFS 队列中的状态数据结构转载 2018-03-18 11:23:08 · 1636 阅读 · 0 评论 -
最短路径 Dijkstra算法
代码转载自:About: 有向图的Dijkstra算法实现Author: Tanky WooBlog: www.WuTianQi.com迪杰斯特拉算法基本思想:对于节点个数为n的有向图,设置一个辅助数组D,存放除起始点V外所有节点到V的距离,集合S用来存放已经加入最短路径的节点进行n-1轮循环,每次循环从D数组中取出距离原创 2018-03-16 10:29:16 · 258 阅读 · 0 评论 -
括号匹配(栈实现)
#include <stdio.h>#include <malloc.h> //malloc,realloc#include <math.h> //含有overflow#include <process.h> //exit()#define S_SIZE 100 //栈的空间大小#define STACKINCREAMENT 10//增加空间struct SqStack转载 2018-01-05 12:30:58 · 322 阅读 · 0 评论 -
拓扑排序算法C++实现
拓扑排序算法,基本思想: 1、从有向图中选取一个没有前驱(入度为0)的顶点,并输出之 2、从有向图中删去此顶点以及所有以它为尾的弧 3、重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止数据结构PPT图论在第七章:http://download.csdn.net/download/include_heqile/10188767使用邻接表和一个用来存储原创 2018-01-04 19:18:44 · 2955 阅读 · 0 评论 -
并查集实现克鲁斯卡尔算法 HDU —— 1233
马上要考数据结构了,临时复习一下最小生成树算法,两种经典算法,一种Prim,一种kruskal,这里讲一下kruskal算法,所谓kruskal算法,就是先把一个带权无向图按照每个边的权值大小进行排序,然后从小到大依次往一棵空树中添加边,被添加进的边需要满足这样的条件:这条边可以把两个原本不连通的连同分量连接成一个连通分量。从节点的角度来看,就是这条待添加的边的两个关联节点是否处于同一个集合中原创 2018-01-04 13:55:16 · 712 阅读 · 0 评论 -
四则运算 C++ 栈实现
转载自http://blog.csdn.net/lub0807/article/details/37884417#include #include #define MAX_EXP 100 //表达式最大长度#define MAX_INT 10 //整数最大位数#define NO_RESULT -99999 //计算异常的返回值enum n转载 2018-01-05 12:34:15 · 844 阅读 · 0 评论 -
四则运算之中缀表达式转后缀表达式
这篇博客参考了博主“石锅拌饭“的文章:http://blog.csdn.net/sgbfblog/article/details/8001651后缀表达式的计算只要把中缀表达式转换为后缀表达式,后续的计算就会方便很多,所谓后缀表达式,其实就是将操作符放在了参与计算的数字后面,然后以这种形式存入了栈中,计算的时候就按照下面这种方式: 比如对于后缀表达式:1 2 3 * + 5 10 + 2 / -原创 2018-01-11 17:28:08 · 1808 阅读 · 0 评论 -
行列式的计算
版本一:/*********************************************思路:对行列式进行初等变换,将某一列化至只有一个非零数交换完毕之后产生新的数组和维度,递归执行determinant,当维度为2时,计算该行列式的值,返回这个值回溯返回最终结果*********************************************/#inc...原创 2018-05-31 23:03:37 · 1036 阅读 · 0 评论