![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法模板
文章平均质量分 65
wnjason
这个作者很懒,什么都没留下…
展开
-
Kruskal算法(模板)
const int MAXN=11000;/*边结构*/typedef struct{ int start;//道路起点 int end;//道路终点 double value;//道路权值 }Edge;Edge road[MAXN];/*节点集合*/int node[105];/*寻根函数*/int Find_set(int n){原创 2014-11-27 21:14:56 · 537 阅读 · 0 评论 -
快速排序
#include using namespace std;/*算法思想1.将数组首位元素作为划分基准t 2. 从后往前寻找大于等于 t的元素 交换之3. 从前往后寻找小于 t的元素 交换之4.填写基准元素5.返回划分位置。 */int partition(int *data,int l,int r){ int t=data[l]; while(原创 2016-01-12 15:13:07 · 287 阅读 · 0 评论 -
AC自动机算法模板
note//目前还不完善#include #include #include using namespace std;const int kind=26;//节点中包含的子节点数//字典树中的节点struct node{ node *fail; //失败指针 node *next[kind];//Trie每个节点的26个子节点(最多26个字母)原创 2016-01-28 15:32:39 · 330 阅读 · 0 评论 -
最大字段和+最大子矩阵算法模板
#include#includeusing namespace std;int a[101][101],b[101];int dp(int a[],int n)//求最大子段和函数{ int sum = 0,max = 0; for (int i=0; i<n; i++) { sum += a[原创 2016-02-20 21:07:33 · 511 阅读 · 0 评论 -
插入排序
算法思想:插入排序由n-1趟排序组成,对于p=1趟到p=n-1趟,插入排序保证从位置0到位置p上的元素为已排序状态且位置0~p-1的位置上是已排过序的。代码如下:void InsertionSort( int data[],int n){ int j,p; for(p=1;p<n;++p){ tmp=data[p]; for(j原创 2016-01-12 17:38:28 · 309 阅读 · 0 评论 -
冒泡排序
#include #include using namespace std;/*冒泡排序1.从num[0]...num[n-2]分别与它后面的元素比较2.将当前最小的元素放在对应的位置上。 3.共比较n-1趟,每趟比较 n-i个元素4.故时间复杂度为O(n^2) */ void Sort(int num[],int n){ for(int i=0;i<n-1;++i)原创 2016-01-14 15:29:26 · 338 阅读 · 0 评论 -
快速选择算法
算法思想:给出一个数组,选出数组中第K大的元素。1.采用快速排序的划分策略将数组划分成两个子数组。2.如果数组1的个数大于K则第K个元素在数组1中。3如果数组1的个数小于K则第K个元素在数据2中。3.如果等于k 则找到第K大的元素。代码如下:#include #include using namespace std;int partition(int dat原创 2016-01-15 11:40:39 · 516 阅读 · 0 评论 -
二叉树模板
转自http://www.cnblogs.com/heyonggang/p/3399464.html二 叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是 递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中转载 2015-10-29 19:24:19 · 426 阅读 · 0 评论 -
LIS(最长上升子序列)算法 -------模板
模板一(O(n^2))const int MAXN=100000;int dp[MAXN];//记录LIS的长度int c[MAXN];//存储所求序列int LIS(int c[],int N){ int m;//记录最大的j int ans=1; dp[1]=1; for(int i=1;i<=N;i++){ m=0;原创 2014-12-02 13:56:11 · 376 阅读 · 0 评论 -
暴力匹配和KMP算法模板
问题描述:给出一个文本串S和一个模式串P,判断P是否在S中出现,若出现返回模式串中的位置。暴力匹配算法思想假设当前文本串遍历到i,模式串遍历到j:则1.若s[i]==p[j]则文本串和模式串继续匹配 ++i; ++j;2.若s[i]!=p[j]则文本串和模式串进行回溯后再匹配原创 2016-08-12 19:58:24 · 784 阅读 · 0 评论