码迷,mamicode.com
首页 > 编程语言 > 详细

普林斯顿《算法II》第一周学习笔记 Undirected Graph

时间:2015-05-02 06:12:08      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

普林斯顿的算法课是Cousera上评价挺高的一门课,课程的教学语言用的是java,课程中的算法都会被封装成类的形式,对于建立各个算法的知识结构来说还是很有好处的。

第一周的内容是Undirected Graph, 图的存储形式分为adjacency matrix(邻接矩阵)和 adjacency list(邻接表),前者对于可以以O(1)的复杂度查找两个节点是否有边,后的优势在于面对sparse maxtrix(稀疏矩阵)时可以存储很多空间。

Depth-first search & Breadth-first search

无向图的DFS和BFS遍历已经是老生常谈了,跟树的遍历大同小异,这里收集一下课程中讲到应用场景:

Fllod Fill

当需要将一个图片里面的相同颜色的色块替换成另外一个颜色,当图片很大的时候,用DFS是最好的选择。

Kevin Bacon Number

这是一个线上的小游戏,用来查看任何一个好莱坞的演员通过作品和Kevin Bacon的距离,数字越大,就表示他和Bacon的距离就越远,如果他/她直接和Kevin Bacon合作过,则数字为1。用Breadth-first search比较合适。

Connected Component

无向图的连通分量是在DFS的基础之上确保每个节点都访问到,并且将每次DFS迭代的节点进行标记为相同的编号。

普林斯顿《算法II》第一周学习笔记 Undirected Graph

标签:

原文地址:http://www.cnblogs.com/tessitan/p/4471441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!