Lecture 14 CSE 331 Sep 30, 2011
HW 3 due today I will not take any HW after 1:15pm Q1, Q2 and Q3 in different piles I will not take any HW after 1:15pm
Other HW related annoucements Solutions to HW 3 handed out at the END of the lecture Pick up graded HW 2 from recitation/TA office hours next week HW 4 (and rubric) has been posted (link on the blog)
Mid-term related stuff Sample mid term posted (link on the blog) Blog entry on mid-term exam prep.
On Friday, Oct 7 hours-a-thon Atri: 2:00-3:00 (Bell 123) Jiun-Jie: 4:00-5:00 (Commons 9) Jesse: 5:00-6:00 (Bell 224)
Empty Slots Coming up…
Computing Connected Component Explore(s) Start with R = {s} While exists (u,v) edge v not in R and u in R Add v to R Output R
Explore(s) = Connected Comp.(s) Lemma 1: If w is in R then s is connected to w Lemma 2: If s is connected to w then w is in R
Also argued that m ≤ n(n-1)/2
HW 3 due today I will not take any HW after 1:15pm Q1, Q2 and Q3 in different piles I will not take any HW after 1:15pm
Questions?
BFS all
Depth First Search (DFS) http://xkcd.com/761/
DFS(u) Mark u as explored and add u to R For each edge (u,v) If v is not explored then DFS(v)
Why is DFS a special case of Explore?
Every non-tree edge is between a node and its ancestor A DFS run Every non-tree edge is between a node and its ancestor DFS(u) u is explored For every unexplored neighbor v of u DFS(v) 1 1 7 2 2 3 8 4 4 5 5 DFS tree 6 6 3 8 7
Questions?
Connected components are disjoint Either Connected components of s and t are the same or are disjoint Algorithm to compute ALL the connected components? Run BFS on some node s. Then run BFS on t that is not connected to s
Reading Assignment Sec 3.2 in [KT]
Rest of today’s agenda Run-time analysis of BFS (DFS)
Stacks and Queues Last in First out First in First out
But first… How do we represent graphs?
Graph representations 1 Better for sparse graphs and traversals Adjacency matrix Adjacency List (u,v) in E? O(1) O(n) [ O(nv) ] All neighbors of u? O(n) O(nu) O(n2) Space? O(m+n)