
算法分析
听说森林里有糖果屋
毕业于加里敦大学物理系,拥有300年的工作经验。
展开
-
ACM的算法分类
初期: 一.基本算法: (1)枚举.(2)贪心.(3)递归和分治法. (4)递推. (5)构造法.(6)模拟法.二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra).(3)最小生成树算法(prim,kruskal).(4)拓扑排序.(转载 2015-11-09 08:33:19 · 316 阅读 · 0 评论 -
并查集优化之路径压缩
使用并查集查找时,如果查找次数很多,那么使用普通版本的查找方式肯定要超时。比如,有一百万个元素,每次都从第一百万个开始找,这样一次运算就是10^6,如果程序要求查找个一千万次,这样下来就是10^13,肯定要出问题的。普通并查集查找的代码,适合数据量不大的情况:int findx(int x){ int r=x; while(parent[r] !=r)转载 2015-10-28 13:48:07 · 764 阅读 · 0 评论 -
算法的基本特征
一个算法应该具有以下几个重要的特征: 1、有穷性: 一个算法必须保证执行有限的步骤之后结束.2、确切性: 算法的每个步骤都必须有确切的定义.3、拥有足够的情报:(1)输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件.(2)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果.没有输出的算法是毫无意义的.4、可行性: 算转载 2015-11-29 13:57:28 · 7399 阅读 · 0 评论 -
算法复杂度T(n)推算
转载自:http://www.cnblogs.com/dragondove/p/6389177.html在算法分析中,我们将语句总的执行次数记为T(n)进而分析T(n)随n的变化情况确认T(n)的数量级。一般情况下,T(n)随n增大变化最缓慢的算法为最优算法。根据定义,T(n)的求法是很简单的,也就是简单的数数。举个例子:int i;for(i=0;i这里int 执行一次,f转载 2017-03-06 16:11:29 · 9000 阅读 · 0 评论