cs 483 - data structures and algorithm analysis - lecture...

39
Outline Introduction InsertionSort DFS & BFS Homework CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter 5, part 1 R. Paul Wiegand George Mason University, Department of Computer Science February 22, 2006 R. Paul Wiegand George Mason University, Department of Computer Science CS483 Lecture II

Upload: others

Post on 10-Jun-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

CS 483 - Data Structures and Algorithm AnalysisLecture V: Chapter 5, part 1

R. Paul Wiegand

George Mason University, Department of Computer Science

February 22, 2006

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 2: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Outline

1 Introduction to Decrease-And-Conquer

2 The InsertionSort Algorithm

3 Depth-First and Breadth-First Searching

4 Homework

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 3: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Decrease-And-Conquer

Decrease-and-conquer exploits the relationship between a solutionto a given problem instance and a solution to a smaller instance ofthe same problem

Divide-and-conquer attempts to solve separate pieces of theproblem, then combine the pieces into an answer, whileDecrease-and-conquer attempts to say something about the totalsolution in terms of the solution to the smaller piece

Can be approached top-down (recursively) or bottom-up

Three variations:

decrease by a constant — Each iteration, the size of a problem instance isreduced by a constant (e.g., n − 1)

decrease by a constant factor — Each iteration, the size of a problem instanceis reduced by a constant factor (e.g., n

2)

variable size decrease — The reduction pattern varies with each iteration(e.g., Euclid)

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 4: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Simple Examples of Decrease-and-Conquer

Consider the problem of computing f (n) = an:

Decrease by a constant:

f (n) =

{

f (n − 1) · a if n > 1a if n = 1

Decrease by a constant factor:

an =

(

an/2)2

if n > 0 is even(

a(n−1)/2)2· a if n > 1 is odd

a if n = 1

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 5: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Simple Examples of Decrease-and-Conquer

Consider the problem of computing f (n) = an:

Decrease by a constant:

f (n) =

{

f (n − 1) · a if n > 1a if n = 1

⋆ Decrease by a constant factor:

an =

(

an/2)2

if n > 0 is even(

a(n−1)/2)2· a if n > 1 is odd

a if n = 1

⋆ We are not solving each piece

⋆ We are using knowledge abouthow the solution to the piecerelates to the whole problem

⋆ O(lg n)

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 6: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 21A

j −→ 6921 ←−i50598747

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 7: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 21j −→ A

69 ←−i50598747

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 8: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 50A

21j −→ 69

50 ←−i598747

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 9: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 50A

j −→ 21

69 ←−i598747

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 10: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 59A

2150

j −→ 6959 ←−i8747

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 11: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 59A

21j −→ 50

69 ←−i8747

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 12: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 87A

215059

j −→ 6987 ←−i47

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 13: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 47A

21505969

j −→ 8747 ←−i

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 14: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 47A

j −→ 21

50596987 ←−i

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 15: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Specifying InsertionSort

InsertionSort(A[0 . . .n − 1])

for i ←− 1 to n − 1 do

v ←− A[i ]j ←− i − 1while j ≥ 0 and A[j ] > v do

A[j + 1]←− A[j ]j ←− j − 1

A[j + 1]←− v

v = 47A

j −→ 214750596987 ←−i

It’s like arranging cards in your hand!

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 16: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Comments About InsertionSort

When dealing with A[n − 1], we assume that the A[0 . . . n − 2]problem has already been solved

We find an appropriate position for A[n − 1] and insert it

The idea of this algorithm is recursive, but a bottom-up, iterativeimplementation is typically best

One way to speed up insertion is to use BinarySearch to find theposition (aka binary insertion sort)

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 17: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Analyzing (Straight) InsertionSort

We count A[j] > v comparisons, analysis depends on data ...

Worst case:

Best case:

Average case:

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 18: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Analyzing (Straight) InsertionSort

We count A[j] > v comparisons, analysis depends on data ...

Worst case:

All elements in the sublist are shifted every insertionThis occurs when A is initially strictly decreasing

Cworst(n) =∑n−1

i=1

∑i−1j=0 i = (n−1)n

2 ∈ Θ(n2)

Best case:

Average case:

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 19: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Analyzing (Straight) InsertionSort

We count A[j] > v comparisons, analysis depends on data ...

Worst case:

All elements in the sublist are shifted every insertionThis occurs when A is initially strictly decreasing

Cworst(n) =∑n−1

i=1

∑i−1j=0 i = (n−1)n

2 ∈ Θ(n2)

Best case:

We check each insertion, but no shift is necessaryCbest(n) =

∑n−1i=1 1 = n − 1 ∈ Θ(n)

Average case:

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 20: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Analyzing (Straight) InsertionSort

We count A[j] > v comparisons, analysis depends on data ...

Worst case:

All elements in the sublist are shifted every insertionThis occurs when A is initially strictly decreasing

Cworst(n) =∑n−1

i=1

∑i−1j=0 i = (n−1)n

2 ∈ Θ(n2)

Best case:

We check each insertion, but no shift is necessaryCbest(n) =

∑n−1i=1 1 = n − 1 ∈ Θ(n)

Average case:

Investigate number of pairs of elements that are out of orderOn randomly ordered arrays, InsertionSort makes onaverage half as many comparisons as on decreasing arrays

Cavg (n) ≈ n2

4 ∈ Θ(n2)

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 21: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Searching Graphs

Solutions to many problems involve searching through a graph

There are a variety of ways of to search a graph ...

But there’s a simple generalization for many methods:

GraphSearch(G , a)

WaitingList ←− 〈a〉VisitedList ←− 〈〉while not Empty(WaitingList)

v ←−GetAndRemoveItem(WaitingList)ChildrenList ←− GetChildVertices(G , v)AddListToList(WaitingList,ChildrenList)AddItemToList(VistedList,v)

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 22: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Searching Graphs

Solutions to many problems involve searching through a graph

There are a variety of ways of to search a graph ...

But there’s a simple generalization for many methods:

GraphSearch(G , a)

WaitingList ←− 〈a〉VisitedList ←− 〈〉while not Empty(WaitingList)

v ←−GetAndRemoveItem(WaitingList)ChildrenList ←− GetChildVertices(G , v)AddListToList(WaitingList,ChildrenList)AddItemToList(VistedList,v)

DFS, BFS, Best-First, and A⋆

are all instances of this method,depending on the list structure.DFS uses a Stack; BFS uses aqueue

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 23: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Searching Graphs

Solutions to many problems involve searching through a graph

There are a variety of ways of to search a graph ...

But there’s a simple generalization for many methods:

GraphSearch(G , a)

WaitingList ←− 〈a〉VisitedList ←− 〈〉while not Empty(WaitingList)

v ←−GetAndRemoveItem(WaitingList)ChildrenList ←− GetChildVertices(G , v)AddListToList(WaitingList,ChildrenList)AddItemToList(VistedList,v)

DFS, BFS, Best-First, and A⋆

are all instances of this method,depending on the list structure.DFS uses a Stack; BFS uses aqueue

WARNING: The algorithms inthe book are presented differ-ently, but they are the same inspirit.

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 24: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈a〉Visited = 〈〉Dead = 〈〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 25: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈cde〉Visited = 〈a〉Dead = 〈〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 26: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈dfe〉Visited = 〈ac〉Dead = 〈〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 27: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈fe〉Visited = 〈acd〉Dead = 〈d〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 28: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈be〉Visited = 〈acdf 〉Dead = 〈d〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 29: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈e〉Visited = 〈acdfb〉Dead = 〈d〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 30: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈〉Visited = 〈acdfbe〉Dead = 〈de〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 31: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Depth-First Searching: An Example

a

c

d

e

f

b

a

c

d f

b

e

Stack = 〈〉Visited = 〈acdfbe〉Dead = 〈debfca〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind articulation points

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 32: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈a〉Visited = 〈〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 33: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈cde〉Visited = 〈a〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 34: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈def 〉Visited = 〈ac〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 35: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈ef 〉Visited = 〈acd〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 36: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈fb〉Visited = 〈acde〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 37: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈b〉Visited = 〈acdef 〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 38: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Breadth-First Searching: An Example

a

c

d

e

f

b

a

c

f

d e

b Queue = 〈〉Visited = 〈acdefb〉

For adjacency matrix representation, traversal time is Θ(|V |2)

For adjacency list representation, traversal time is Θ(|V |+ |E |)

We can use the algorithm to check for connectivity & cycles, and tofind minimum paths

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II

Page 39: CS 483 - Data Structures and Algorithm Analysis - Lecture ...pwiegand/cs483-Spring06/lecturenotes/cs483-l5… · CS 483 - Data Structures and Algorithm Analysis Lecture V: Chapter

Outline Introduction InsertionSort DFS & BFS Homework

Assignments

This week’s assignments:

Section 5.1: Problems 4, 6, and 9Section 5.2: Problems 1, 4, and 7

R. Paul Wiegand George Mason University, Department of Computer Science

CS483 Lecture II