算法
文章平均质量分 79
YXY_1989
山东蓝翔高级技工学校香港沙田分校Master;
IBM中国研究院Researcher Intern;
IBM China Regular staff;
展开
-
线段树基础
/*Author:YangxiangyuPid:HDU 1754 I hate it简单线段树*/#include#define MAXN 200000struct node{ int left,right,mid,value;}interval_tree[MAXN<<2];int n,m;int max(int a,int b){return a>b?a:b;}voi原创 2014-09-05 14:36:26 · 561 阅读 · 0 评论 -
Kmeans算法详解及实现
今天我们介绍数据挖掘领域最基本的一个算法,Kmeans算法,并进行算法的讲解及实现。本文实现代码为最基础的实现方式,如果数据多维,例如用经典iris数据集时,可能会需要做数据预处理,比如归一化,并且修改代码相关函数即可。原创 2014-09-30 15:40:30 · 3172 阅读 · 1 评论 -
Clustering of residential areas based on residential conditions
This paper provides an overview and some conclusions from the HOUSING datasets disposed by the classical algorithms Kmeans and Hierarchical clustering. The total process of the project is divided into five parts including data preprocessing, selecting the原创 2014-10-03 12:03:00 · 1066 阅读 · 0 评论 -
二叉树的遍历(递归与非递归)
这里实现了二叉树的先序遍历、中序遍历、后序遍历的递归和非递归两种形式的遍历以及对二叉树的层次遍历。很基础,适合数据结构初学者参考。原创 2014-09-25 14:02:58 · 892 阅读 · 0 评论 -
图论算法(4) --- TSP旅行商问题 求最短回路(acm)
对于TSP旅行商问题,我们做的最多的也就是求最短回路了,那么对于一个数据量适中的图来说,一般的dfs方法即可求解,在这里,我应用dfs的思想来实现此问题,而关键之处在于对矩阵的改进,这样的操作可以使得应用搜索思想求TSP问题时,效率有显著的提高。对于矩阵的改进,我们对矩阵的处理是,每一行减去所在行的最小值,每一列减去所在列的最小值,并把这些最小值加到结果sum中,这样的操作是将矩阵稀疏原创 2014-09-03 17:42:07 · 9843 阅读 · 6 评论 -
图论算法(2)--- 如何求DAG中每一个点的所有子孙数量
问题引入:上篇文章我们原创 2014-08-29 14:53:01 · 1470 阅读 · 0 评论 -
文本相似度计算之--- 编辑距离 && 最长公共子串
问题引入:在自然语言处理ling原创 2014-09-02 14:19:11 · 2512 阅读 · 0 评论 -
图论算法(3)--- A*算法求k短路
在一个图中,如何求出前k短路,原创 2014-09-02 11:39:11 · 1864 阅读 · 2 评论 -
PageRank算法C++代码实现标准版
对于PageRank算法,维基百科和网上很多大牛的博客已经讲得很详细了,这里附上一个自己写的PageRank算法C++实现版本原创 2014-09-05 17:46:08 · 9508 阅读 · 11 评论 -
图论算法(6)(更新版) --- Tarjan算法求强连通分量
之前Tarjan算法求强连通分量博文中,代码实现用到了固定大小数组,扩展起来似乎并不是很方便,在java里这样来实现本身就是不太妥当的,所以下面给出一个更新版本的代码实现,算法本身比较简单,如果对算法不太理解,请先看之前的博文讲解。原创 2014-09-22 14:03:43 · 988 阅读 · 0 评论 -
图论算法(1)--- 如何求每一个节点在DAG中的最大深度
问题引入:对于LCA大家并不陌生,也就是最近公共祖先,dan原创 2014-08-29 14:14:24 · 2578 阅读 · 3 评论 -
A*搜索算法
A*搜索算法,俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或在线游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径,也像BFS一样,进行启发式的搜索。在此算法中,如果以g(n)表示从起点到任意顶点n的实际距离,h(n)表示任意顶点n到目标顶点的估算距离,那么A*算法的公式为f(n)=g(n)+h原创 2014-03-26 21:08:30 · 1647 阅读 · 0 评论 -
图论算法(5) --- 双向广搜求最短路(Bidirectional Breadth First Search)
我们知道,在图论算法中,求最短路是最基本的问题。在求最短路的问题中,应用双向广度优先搜索算法,又是一个较为高效而又简单的算法。所谓双向广度优先搜索,其实根本的核心还是BFS,只不过它是从起点和终点两头同时搜索,大大提高了搜索效率,又节省了搜索空间。广搜大家知道当然是用队列来实现了,在这里,要注意的问题就是,我们必须按层搜索,正向队列处理一层,接着去处理反向队列的一层,按层交替进行,而不是按节点交替原创 2014-09-12 11:14:01 · 4760 阅读 · 1 评论 -
图论算法(7) --- 用并查集求最小生成树
求最小生成树,最经典的算法无非是prim算法和kruskal算法,而时间效率上,kruskal更胜一筹。对于kruskal的实现,这里我们采用并查集的思想。原创 2014-09-19 18:13:08 · 1027 阅读 · 3 评论 -
图论算法(6) --- Tarjan算法求强连通分量
此算法以有向图作为输入,并按照所在的强连通分量给出其顶点集的一个划分。本文从原理到实现都有着详细的讲解。欢迎大家指正。原创 2014-09-15 16:00:10 · 2221 阅读 · 1 评论