随笔分类 -  Algo.

摘要:edited from How Google Finds Your Needle in the Web's HaystackGoogle搜索的核心算法当然不止是PageRank,但PageRank确实是其中的核心部分。Google就曾经说过:“the heart of our software is PageRank”.Google的PageRank算法声称他们比较了一个月来网页的受欢迎程度从而确定哪个网页显得比较重要。根据Sergey Brin和Lawrence Page的说法,一个网页的重要性不仅仅包括他们自身的重要程度,还包括链接向这个网页的其他网页数目。综合公式为:呵呵,看到这 阅读全文
posted @ 2012-10-14 22:33 billowkiller 阅读(530) 评论(0) 推荐(0)
摘要:单源最短路径1. DijkstraDijkstra算法解决有向图上带权的单源最短路径问题,要求所有边的权值非负。用到了顶点的最小优先队列,排序关键字为顶点的d值。即开始出了根为0,其他顶点为正无穷,后来d值根据松弛算法变化。总计运行时间为O((V+E)lgV),如果所有顶点都可达的话,则为O(ElgV)。2. Bellman-ford算法用来解决一般,即边的权值可以为负的单源最短路径问题。算法同时也可以检查是否有从源点可达的负权回路。算法的运行时间为O(VE)。在Dijkstra算法以及关于有向无回路图的最短路径算法中,对每条边执行一次松弛操作。在Bellman-Ford算法中,对每条边要执行 阅读全文
posted @ 2012-10-10 09:27 billowkiller 阅读(703) 评论(0) 推荐(0)
摘要:算法使用的是二叉堆,时间为O(ElgV)。如果V小于E的话,使用Prim更好。Kruskal算法:O(ElgE): E<V2,所以有 lgE=O(lgV)集合A是一个森林,加入集合A中的安全边总是图中连接两个不同连通分支的最小权边。使用不相交集合数据结构。测试边时,即测试两端点是否在同一棵树上。若不在则可以对集合进行合并。Prim算法:集合A形成单棵树,添加集合A的安全边总是连接树与一个不在树中的顶点的最小权边。使用最小优先队列。优先队列基于Key值,key[v]是所有将v与树中某一顶点相连的边中的最小权值。一开始除了根节点,其他节点的key为无穷大。 阅读全文
posted @ 2012-10-06 22:21 billowkiller 阅读(145) 评论(0) 推荐(0)

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.