- 博客(6)
- 资源 (6)
- 收藏
- 关注
原创 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 338
原创 快速选择算法
算法思想: 给出一个数组,选出数组中第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 525
原创 冒泡排序
#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 345
原创 LeetCode---Pow(x, n)
题目大意:给出一个浮点数x和一个整数n,求出x^n. 算法思想: 1.如果n 2.分治法:x^n=x^n/2*x^n/2*x^n%2 代码如下: class Solution { public: double myPow(double x, int n) { if(n<0) return 1.0/power(x,-n); return power
2016-01-13 11:22:55 368
原创 插入排序
算法思想: 插入排序由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 319
原创 快速排序
#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 294
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人