- 博客(29)
- 资源 (5)
- 收藏
- 关注
原创 vim 笔记
移动^非空白行首$行尾0行首h左j下k上l右gg 档首G 档委5G 到第5行w 下一词首e 下一词尾b 前一词首H屏首L屏尾W屏中复制y[移动命令]剪切d[移动命令]yy dd 分别代表复制/剪切 整行粘贴p 粘贴到下一行(整行),右(非整行)P 粘贴到上一行,左翻页ctrl F
2016-08-15 14:19:20
525
原创 数组中第K大的数
输入:array[n],1输出:第k大的数思路:quick sort partition,O(n) int partition(vector&nums, int s, int e){ int idx = s + rand() % (e - s + 1); swap(nums[idx], nums[e]); int big = s - 1; for (i
2016-07-22 14:09:25
508
原创 MergeKSortedList
将K个已排序的链表合并为一个有序的链表输入:K个有序List输出:一个有序List代码:/* Ethan mergeKSortedLists 2016.3.1*/#include #include #include using namespace std;struct ListNode{ int val; ListNode *next; ListNode(i
2016-03-01 20:05:33
945
原创 Naive Bayesian文本分类器
贝叶斯学习方法中实用性很高的一种为朴素贝叶斯学习期,常被称为朴素贝叶斯分类器。在某些领域中与神经网络和决策树学习相当。虽然朴素贝叶斯分类器忽略单词间的依赖关系,即假设所有单词是条件独立的,但朴素贝叶斯分类在实际应用中有很出色的表现。朴素贝叶斯文本分类算法伪代码:朴素贝叶斯文本分类算法流程:通过计算训练集中每个类别的概率与不同类别下每个单词的概率,然后利用朴素贝叶斯公式计
2016-01-17 16:12:15
2009
1
原创 聚类算法-Hierarchical(MIN)-C++
程序流程图:Hierarchical(MIN)核心功能函数,采用vector >::dTable存储两点之间的距离。计算每两个point间的距离并保存到distance table中;判断是否达到需要聚类的cluster数量,若是,将point信息写入clustering文件,程序结束。否则,合并两个具有最小距离的point,将两个point中的所有node全部加入到一个point
2015-12-31 11:16:57
6177
原创 聚类算法-K-means-C++实现
程序流程图:K-means核心功能函数,首先,随机选择K-中心点(中心点坐标为簇中所有点的x坐标的平均值,y坐标的平均值,该点用于记录位置,不属于原始数据集);循环判断中心点是否不变,若是,将二维点对信息写入clustering文件,程序结束。否则,对于每个二维数据点,选择与其距离最近的中心点,将点cluster编号更新为中心点的cluster编号。然后对于K-簇,重新计算K-中心点,
2015-12-31 11:03:16
20666
6
原创 聚类算法-DBSCAN-C++实现
程序流程图:DBSCAN核心功能函数,计算每个point的eps范围内的point数量pts;对于所有pts >Minpts的point,记为Core point;对于所有的corepoint,将其eps范围内的core point下标添加到vector::corepts中;对于所有的corepoint,采用深度优先的方式遍历core point的所有cluster,使
2015-12-31 10:45:17
24752
30
原创 Apriori算法 (Introduction to data mining)
前置概念:Support: 支持度 s(X->Y) =(XUY)/N;Confidence: 置信度 c(X->Y) =(XUY)/(X);Frequent ItemSet: 频繁项集 Support >minSup; Apriori Principle: 如果一个项集是频繁的,那它所有的子项集也都是频繁的。 Frequent Itemset Generation in the AprioriAlgorithm:Apriori算法是第一个指出使用基于支持度剪枝策略的关联规则挖掘算法,系统地控
2015-12-02 12:44:08
2029
原创 顶点覆盖问题
输入:无向图G(V,E)输出:C属于V,C中点数最小,满足E中任意一条边中的两个顶点至少有一个在C中APPROX_Vertex_Cover(G)1 C=空集2 E' = E3 While E' != 空集 Do4 任选{u,v}属于E'5 C = C U {u,v}6 删除E'中所有与u,v相连的边7 Return CRatio Bound(近似比)设A
2015-11-25 17:45:34
12799
原创 判断两多项式之积是否等于另一多项式
问题描述:判断p(x),q(x)之积是否等于r(x),p,q,r分别为m,n,l 阶多项式Random_polynomial(p(x),q(x),r(x),m,n,l)输入:随机选取X[1:k+1]输出:p(x)*q(x)是否等于r(x)1 K =max{m+n,l}2 For k=1 to K do3 X[k]
2015-11-24 21:19:48
1599
1
原创 随机算法
1. 数值随机算法通过随机点数求解圆周率,定积分等问题。主要利用大数定律与强大数定律。2. 拉斯维加斯随机算法(Las Vegas)通过随机选择法求解集合S中的第k小的数算法得到的解一定是正确解,但算法也可能不获得问题的解,满足以上条件即为拉斯维加斯算法。3. 舍伍德随机算法(Sherwood)随机快速排序舍伍德算法能够获得问题的正确解,它的精髓在于消除算法的最坏情
2015-11-22 14:47:24
667
原创 并行机器最短调度问题
输入:数组t,存储n个任务的执行时间m台完全一样的机器输出:使任务在m台机器并行执行时间最短的一个调度策略基于贪心选择:选择具有最短任务队列的机器。#include #include using namespace std; int minTask(int *t,int n){ int tmp = t[0]; int min = 0; for(int i=0;i<n;
2015-11-19 20:44:25
3770
原创 求数组中的逆序对
#include using namespace std;int count = 0;void merge(int *a,int p,int q,int r){ int n1 = q-p+1; int n2 = r-q; int *m = new int[n1]; int *n = new int[n2]; for(int i=0;i<n1;i++) m[i] = a[p+i]
2015-11-19 15:38:09
521
原创 树搜索策略
1. 深度优先维护栈将根节点放入栈循环弹出栈顶元素,然后将栈顶元素的子节点放入栈中当栈顶元素满足约束条件,对其进行处理。当栈空时,搜索结束2. 广度优先维护队列将根节点放入队列循环弹出队首元素,然后将队首的子节点放入队列中当队首元素满足约束条件,对其进行处理。当队空时,搜索结束3. 爬山法深度优先+贪心将栈首的子节点,采用贪心策略放入栈顶
2015-11-18 20:14:13
734
原创 01背包-近似算法
void dp2(int *w, int *v, int n, int c){cout<<"dp2:"<<endl; int vs = 0; for(int i=0;i<n;i++) vs += v[i]; int **m; m = new int*[n+1]; for (int i = 0; i<n + 1; i++) { m[i] = new int[vs+1]; for
2015-11-18 16:46:17
2179
原创 动态规划算法的一般解题思路
1. 证明优化子结构对于问题的优化子结构,给出问题具有优化子结构的解代价,利用反证法,假设上解不是最优的,则存在另外一个解,其解优于上解,这与上解是最优的矛盾,于是该问题具有优化子结构。证明优化子结构问题主要利用反证法。2. 证明重复子问题给出问题的递归公式则重叠子问题鍀证。3. 递归的定义最优解的代价给出最有解的代价递归公式,利于代码编写。4. 自底向上计算最优解的代
2015-11-17 16:18:05
1495
原创 整数序列合并问题
#include using namespace std;void show(int **s,int i,int j){ if(i==j) cout<<"A"<<i; else{ cout<<"("; show(s,i,s[i][j]); show(s,s[i][j]+1,j); cout<<")"; }}void answer(int *a,int n){ i
2015-11-16 19:58:46
1093
原创 01背包
#include #include #include #include using namespace std;/**Dynamic Processing 15S103182 武雪剑*m[i,j] = max{ m[i+1,j] , m[i+1,j-w[i]]+v[i] }*/void dp(int *w, int *v, int n, int c){ vector > m;
2015-11-13 14:51:04
565
原创 求n*n阶矩阵最大子矩阵阶数
int MaxSubMatrixOrder(int **a,int n){ int result[n][n] = {a[0][0]}; for(int i=1;i<n;i++){ result[0][i] = a[0][i]; result[i][0] = a[i][0]; } int max = 0; for(int i=0;i<n;i++){ for(int j=0;j<
2015-10-16 21:28:17
1127
原创 斐波那契数列-台阶问题
int fibonacciSequence(int n){ if(n<1) return 0; if(n<3) return 2; int a[n+1]; a[0]=1; a[1]=1; for(int i=2;i<=n;i++){ a[i] = a[i-1] + a[i-2]; } return a[n];}
2015-10-13 20:29:00
667
原创 最长公共子序列
int ** lcsLength(int *x,int *y,int m,int n){ int b[m][n],c[m][n]; for(int i=0;i<m;i++) for(int j=0;j<n;j++) b[i][j]=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) c[i][j]=0; for(int i=1;i<
2015-10-10 21:09:47
569
原创 快速排序
void swap(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp;}int partition(int *a,int p,int r){ int x = a[r]; int i = p-1; for(int j=p;j<r;j++){ if(a[j]<=
2015-10-10 17:09:55
503
原创 归并排序
void merge(int *a,int p,int q,int r){ int n1 = q-p+1; int n2 = r-q; int *m = new int[n1]; int *n = new int[n2]; for(int i=0;i<n1;i++) m[i] = a[p+i]; for(int j=0;j<n2;j++) n[j]
2015-10-10 15:37:14
490
原创 插入排序
void InsertingSort(int *p,int length){if(lengthfor(int i=1;iint j=i-1;int key=p[i];while(j>=0&&p[j]>key) p[j+1] = p[j--];p[j+1] = key;}}
2015-09-16 11:16:35
492
原创 php环境配置
声明:本编文章主要是本人通过查阅网络资料与自己亲自实践总结,文章主要参考(http://jingyan.baidu.com/article/154b46315242b328ca8f4101.html)希望对大家配置php环境有所帮助。1.软件环境操作系统:winX86(64位系统同理,下载64位软件即可)Web服务器:Apache2.4.16语言环境:php5.6.13数据库环
2015-09-15 19:57:47
668
Hierarchical层次聚类算法-C++
2016-01-02
DBSCAN聚类算法-C++
2016-01-02
K-means聚类算法-C++
2016-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人