Course Review 15 211 Fundamental Structures of Computer

  • Slides: 58
Download presentation
Course Review 15 -211 Fundamental Structures of Computer Science Ananda Guna May 04, 2006

Course Review 15 -211 Fundamental Structures of Computer Science Ananda Guna May 04, 2006

This course was about How to solve computing problems using: • Problem analysis, to

This course was about How to solve computing problems using: • Problem analysis, to abstract away details and divide into smaller subproblems. • Mathematical foundations for precise formulations of problems and solutions. • Data structures and algorithms to solve problems correctly and efficiently. • Java programming and modular software construction for good implementations.

Data Structures/Algorithms -Complexity big-O, little-O, Omega etc. . -Lists - linked, doubly, singly, multi-linked

Data Structures/Algorithms -Complexity big-O, little-O, Omega etc. . -Lists - linked, doubly, singly, multi-linked - Trees - general, B-trees, BST, splay, AVL, etc. - Stacks and Queues - operations, analysis - Heaps - binary, binomial - Hash Tables. - collisions, implementation - Graphs - traversals, shortest paths - FSM - regular expressions, KMP - String Matching - KMP, Boyer-Moore, Rabin-Karp

Data Structures/Algorithms - Dynamic Programming - table(bottom-up), recursion(top-down) - memoization - Game Trees -

Data Structures/Algorithms - Dynamic Programming - table(bottom-up), recursion(top-down) - memoization - Game Trees - mini-max, alpha-beta, iterative deepening - Sorting bubble, quick, insertion, selection -Algorithms -find. Max, find. Median, reverse, MST, compression -Traversals, shortest path

Java Programming Object oriented programming. Correctness (loop invariants, induction). Time and space complexity. Debugging

Java Programming Object oriented programming. Correctness (loop invariants, induction). Time and space complexity. Debugging (test harness).

Studying for the Final Exam Review all material first • Lectures, programs, quizzes Do

Studying for the Final Exam Review all material first • Lectures, programs, quizzes Do sample finals – under time restrictions. Old finals are in blackboard/course material Types and difficulty of problems may be similar (some topics not covered)

Complexity

Complexity

Complexity f(n)=n 2 g(n) = n h(n) = log n f(n) is O(g(n)) iff

Complexity f(n)=n 2 g(n) = n h(n) = log n f(n) is O(g(n)) iff f(n) is o(g(n)) iff f(n) is Ω(g(n)) iff f(n) is θ(g(n)) iff

Complexity True or False? If true prove it, else give counter example

Complexity True or False? If true prove it, else give counter example

Space Complexity How much memory is needed to run the program • quicksort •

Space Complexity How much memory is needed to run the program • quicksort • merge Sort • insertion sort • Prim’s • Dijkstra’s Key Point: consider the sizes of the data structures used

Solving Recurrences, Asymptotics Solve T(n) = 3 T(n/3) + 1 Prove the correctness •

Solving Recurrences, Asymptotics Solve T(n) = 3 T(n/3) + 1 Prove the correctness • By induction • Invariants § Hold initially § Preserved after each iteration of loop or method call • Or other methods

Complexity A is an array of integers

Complexity A is an array of integers

Complexity of known algorithms Algorithm Complexity(runtime) Bubble sort O(n 2) – average, worst, O(n)

Complexity of known algorithms Algorithm Complexity(runtime) Bubble sort O(n 2) – average, worst, O(n) – best Insertion sort O(n 2) – average, worst, O(n) – best Selection sort O(n 2) – average, worst, best Find Max, Find min O(n), cannot be done in o(n) Find Median With sorting O(n*logn) Quick sort but O(n) using quick select O(nlogn) – average & best, O(n 2) – worst Merge Sort O(nlogn) – average, best, worst Heap Sort O(nlogn) – best, worst, average Build heap O(n)

Complexity of known algorithms Algorithm Complexity Heap – find min O(1) Heap – delete

Complexity of known algorithms Algorithm Complexity Heap – find min O(1) Heap – delete Min O(logn) Heap -insert O(logn) Hash – insert, find, delete Graph - build O(1) Graph - Traverse O(V 2) – space (adjacency matrix) O(V+E) – space (adjacency list) O(E) Graph – Topological Sort Graph – Dijkstra’s O(V + E) MST – prim’s O(E+V 2) O((E+V) log. E)

Complexity of known algorithms Algorithm MST – Kruskal’s Dynamic Programming Complexity O(E log. E)

Complexity of known algorithms Algorithm MST – Kruskal’s Dynamic Programming Complexity O(E log. E) – sort the edges O(V log. V) – find and union operations O(Table size) Disjoint sets - union Linear with memoization O(logn) Disjoint sets - find O(logn) KMP O(n+m)

Sorting

Sorting

Sorting and lower bounds Insertion Sort Selection Sort Heapsort Mergesort Quicksort Radix Sort

Sorting and lower bounds Insertion Sort Selection Sort Heapsort Mergesort Quicksort Radix Sort

Sorting and lower bounds

Sorting and lower bounds

Questions

Questions

Trees

Trees

Balanced Binary Trees

Balanced Binary Trees

AVL Trees 1. Traverse the tree inorder 2. Do exactly two rotations so that

AVL Trees 1. Traverse the tree inorder 2. Do exactly two rotations so that the tree is balanced 3. Consider a binary tree of height h a. What are the max and min number of nodes? b. What are the max and min number of leaves? 4. Perfect, full, complete trees

Splay Trees

Splay Trees

Full, Complete and Perfect Trees Definitions Full, complete and perfect Ex: Show that a

Full, Complete and Perfect Trees Definitions Full, complete and perfect Ex: Show that a full binary tree with n leaves has (n-1) internal nodes. (use induction on n) Therefore a full binary tree with n leaves has (2 n-1) nodes Ex: Start from the root and do a preorder traversal as follows. Write 1 for a node with 2 children. Visit left child, then right child. Write 0 if the node is a leaf. Therefore a full binary tree with 3 nodes can be represented by bit sequence 100. What is the bit sequence representing a full binary tree with 8 leaves?

Code Examples

Code Examples

Dictionaries

Dictionaries

Dictionaries

Dictionaries

Hashing Describe why hashing a string to sum of its characters is not a

Hashing Describe why hashing a string to sum of its characters is not a good idea. Assume S = a 1 a 2…. an is a string Define H(S) = ai 2 i-1 (i=1. . n) Describe a way to efficiently calculate H(S)

Heaps

Heaps

Priority Queues and Heaps Suppose you implement a priority queue using following • Unsorted

Priority Queues and Heaps Suppose you implement a priority queue using following • Unsorted array • Linked list (smallest at front) • Heap What is the complexity in each case for • delete. Min • insert

Binary heaps

Binary heaps

Compression

Compression

Compression

Compression

LZW compression

LZW compression

Data Compression Encode “I AM SAM” using • Huffman compression • LZW • In

Data Compression Encode “I AM SAM” using • Huffman compression • LZW • In each case calculate the compression ratio Is it possible to apply Huffman after applying LZW? If so apply Huffman to output generated by LZW above

Graphs

Graphs

Graphs Adjacency lists and matrices Traversal (DFS, BFS) Reachability (DFS, BFS, Warshall) Shortest Paths

Graphs Adjacency lists and matrices Traversal (DFS, BFS) Reachability (DFS, BFS, Warshall) Shortest Paths (Dijkstra, Bellman. Ford) MST (Prim, Kruskal)

Graphs What is breadth first traversal(BFS)? What is depth first traversal(DFS)? What data structures

Graphs What is breadth first traversal(BFS)? What is depth first traversal(DFS)? What data structures can be used to implement each one? Reachability Connected components Topological sort

Graphs

Graphs

Greedy Algorithms 60 40 60 20 50 40 40 40 50 50 60 10

Greedy Algorithms 60 40 60 20 50 40 40 40 50 50 60 10 20 20 100 20 30 50 40 150 Find the Shortest Path from Node 1 to every other node

Dijkstra’s Algorithm

Dijkstra’s Algorithm

MST Find the MST using a. Prim’s Algorithm b. Kruskal’s algorithm

MST Find the MST using a. Prim’s Algorithm b. Kruskal’s algorithm

Homework 1. A graph G is bipartite if the vertex set V can be

Homework 1. A graph G is bipartite if the vertex set V can be partitioned into two subsets L and R, such that every edge has one vertex in L the other in R. Give an example of a bipartite graph. 2. G is a tree if it is connected and acyclic. What is the number is edges in a tree with n nodes? 3. Draw all possible connected graphs G on 4 vertices and 3 edges. 4. Draw all possible connected graphs G on 4 vertices and 4 edges. 5. Suppose G is not connected. What the maximum number of edges in G? 5. Prove or give a counterexample to the following claim: Any tree is bipartite.

Dynamic Programming

Dynamic Programming

Dynamic Programming Dependent subproblems, recursive solutions, memoizing, explicit tables. Knapsack Longest Common Subsequence Matrix

Dynamic Programming Dependent subproblems, recursive solutions, memoizing, explicit tables. Knapsack Longest Common Subsequence Matrix Multiplication

Game Trees

Game Trees

Game trees

Game trees

Games 2 -person, deterministic, complete information, . . . Backtracking Mini. Max Alpha-beta pruning

Games 2 -person, deterministic, complete information, . . . Backtracking Mini. Max Alpha-beta pruning Heuristics, iterative deepening, move order, tricks, . . .

Disjoint Sets

Disjoint Sets

Union-find

Union-find

Regular Expressions

Regular Expressions

Exercises

Exercises

Homework Write a regular expression of the alphabet {a, b, c, d} that describes

Homework Write a regular expression of the alphabet {a, b, c, d} that describes all strings consisting of either an odd number of a's or an even number of b's, followed by any number (and ordering) of c's and d's. Zero is an even number and any number of x's can be zero x's. Draw a FSM to recognize any such string

String matching

String matching

Final Exam Monday, May 8, 8: 00 – 11: 00 am Make sure not

Final Exam Monday, May 8, 8: 00 – 11: 00 am Make sure not to be late.

Final Exam Closed book, no calculators, cell phones, pagers, IM, … You can bring

Final Exam Closed book, no calculators, cell phones, pagers, IM, … You can bring 1 (one) page of notes. Bring fluids

Conclusion Review all material Do all sample quizzes and finals Good luck!!

Conclusion Review all material Do all sample quizzes and finals Good luck!!