6
CS223 Advanced Data Structures and Algorithms 1 Review for Final Review for Final Neil Tang Neil Tang 04/27/2010 04/27/2010

CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

Embed Size (px)

Citation preview

Page 1: CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

CS223 Advanced Data Structures and Algorithms 1

Review for Final Review for Final

Neil TangNeil Tang04/27/201004/27/2010

Page 2: CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

CS223 Advanced Data Structures and Algorithms 2

Course SurveyCourse Survey

Please complete the course survey at:

http://www.cs.montana.edu/survey/

Page 3: CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

CS223 Advanced Data Structures and Algorithms 3

Time Complexity AnalysisTime Complexity Analysis

Asymptotic notations (O, , ): definition, properties

Important functions: polynomial, logN, 2N

4 Rules

Recursion and the master method

Page 4: CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

CS223 Advanced Data Structures and Algorithms 4

GraphsGraphs

Basic concepts

Adjacency matrix and list

Topological sort

BFS, DFS and their applications (strong connected components)

Shortest path: Dijkstra’s algorithm, the Bellman-Ford algorithm, implementation.

Page 5: CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

CS223 Advanced Data Structures and Algorithms 5

GraphsGraphs

Minimum spanning tree: Prim’s algorithm, Kruskal’s algorithm, implementation.

Maximum flow: The Ford-Furkerson algorithm, implementation.

Time complexities

Page 6: CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010

CS223 Advanced Data Structures and Algorithms 6

Algorithm Design TechniquesAlgorithm Design Techniques

Dynamic programming: Recursive equation evaluation, all-pairs shortest path, ordering matrix multiplications.

Divide and conquer: Quick/merge sort, integer/matrix multiplication.

Greedy algorithm: Examples, bin packing algorithms.

Time complexity analysis