Review Part 1 CSE 2011 Winter 2011 1022020

  • Slides: 32
Download presentation
Review – Part 1 CSE 2011 Winter 2011 10/2/2020 1

Review – Part 1 CSE 2011 Winter 2011 10/2/2020 1

Algorithm Analysis l Given an algorithm, compute its running time in terms of O,

Algorithm Analysis l Given an algorithm, compute its running time in terms of O, , and (if any). ¡ Usually the big-Oh running time is enough. l Given f(n) = 5 n + 10, show that f(n) is O(n). ¡ Find c and n 0 l Compare the grow rates of 2 functions. l Order the grow rates of several functions. ¡ Use slide 14. ¡ Use L’Hôpital’s rule. 2

Running Times of Loops Nested for loops: l If the exact number of iterations

Running Times of Loops Nested for loops: l If the exact number of iterations of each loop is known, multiply the numbers of iterations of the loops. l If the exact number of iterations of some loop is not known, “open” the loops and count the total number of iterations. 3

Running Time of Recursive Methods l Could be just a hidden “for" or “while”

Running Time of Recursive Methods l Could be just a hidden “for" or “while” loop. ¡See “Tail Recursion” slide. ¡“Unravel” the hidden loop to count the number of iterations. l Logarithmic ¡Examples: binary search, exponentiation, GCD l Solving a recurrence ¡Example: merge sort, quick sort 4

Recursion Know how to write recursive functions/methods: l Recursive call ¡ Adjusting recursive parameter(s)

Recursion Know how to write recursive functions/methods: l Recursive call ¡ Adjusting recursive parameter(s) for each call l Base case(s) 1. Use the definition (factorial, tree depth, height) 2. Cut the problem size by half (binary search), or by k elements at a time (sum, reversing arrays). 3. Divide and conquer (merge sort, quick sort) 5

Sorting Algorithms l Insertion sort l Merge sort l Quick sort l Lower bound

Sorting Algorithms l Insertion sort l Merge sort l Quick sort l Lower bound of sorting algorithms ¡O(Nlog. N) l When to use which sorting algorithm? l Linear-time sorting (bucket sort) 6

Running Time of Tree Methods Most tree methods are recursive. l Visualize the recursion

Running Time of Tree Methods Most tree methods are recursive. l Visualize the recursion trace. l Count the number of nodes that were visited (processed) k. l Compute the running time for processing each node O(m). l If O(mv) ≠ O(mu), sum up the running times of the k nodes. l Otherwise total running time = k O(m) 7

Arrays and Linked Lists Arrays l A = B l Cloning arrays l Extendable

Arrays and Linked Lists Arrays l A = B l Cloning arrays l Extendable arrays l Strategies for extending arrays: ¡doubling the size ¡increment by k cells Linked lists l Singly linked l Doubly linked l Implementation l Running times for insertion and deletion at the two ends. 8

Running Times of Array and Linked List Operations Array Operation unsorted DL list unsorted

Running Times of Array and Linked List Operations Array Operation unsorted DL list unsorted insert O( ) delete O( ) search O( ) 9

Stacks, Queues and Deques l Operations l Array implementation l Linked list implementation l

Stacks, Queues and Deques l Operations l Array implementation l Linked list implementation l Running times for each implementation l Assignment 3 (deques) 10

Trees l Definitions, terminologies l Traversal algorithms and applications ¡Preorder ¡Postorder l Computing depth

Trees l Definitions, terminologies l Traversal algorithms and applications ¡Preorder ¡Postorder l Computing depth and height of a tree or node. 11

Binary Trees l Linked structure implementation l Array implementation l Traversal algorithms ¡Preorder ¡Postorder

Binary Trees l Linked structure implementation l Array implementation l Traversal algorithms ¡Preorder ¡Postorder ¡Inorder l Properties: relationships between n, i, e, h. l Definitions: ¡complete binary tree ¡full binary tree 12

Linked Structure of Binary Trees l A node is represented by an object storing

Linked Structure of Binary Trees l A node is represented by an object storing ¡ ¡ Element Parent node Left child node Right child node B B A A D C D E C E 13

Array Implementation of Binary Trees Each node v is stored at index i defined

Array Implementation of Binary Trees Each node v is stored at index i defined as follows: l If v is the root, i = 1 l The left child of v is in position 2 i l The right child of v is in position 2 i + 1 l The parent of v is in position ? ? ? 14

Space Analysis of Array Implementation l n: number of nodes of binary tree T

Space Analysis of Array Implementation l n: number of nodes of binary tree T l p. M: index of the rightmost leaf of the corresponding full binary tree (or size of the full tree) l N: size of the array needed for storing T; N = p. M + 1 Best-case scenario: balanced, full binary tree p. M = n Worst case scenario: unbalanced tree l Height h = n – 1 l Size of the corresponding full tree: p. M = 2 h+1 – 1= 2 n – 1 l N = 2 n Space usage: O(2 n) 15

Arrays versus Linked Structure Linked lists l Slower operations due to pointer manipulations l

Arrays versus Linked Structure Linked lists l Slower operations due to pointer manipulations l Use less space if the tree is unbalanced l Rotation (restructuring) code is simple Arrays l Faster operations l Use less space if the tree is balanced (no pointers) l Rotation (restructuring) code is complex 16

Review – Part 2 CSE 2011 10/2/2020 17

Review – Part 2 CSE 2011 10/2/2020 17

Binary Search Trees and AVL Trees BST l Properties l Searching l Insertion ¡Distinct

Binary Search Trees and AVL Trees BST l Properties l Searching l Insertion ¡Distinct keys ¡Duplicate keys l Deletion (3 cases) l Running times AVL trees l Properties l Searching l Insertion: as BST plus ¡restructuring (once) l Deletion: as BST plus ¡restructuring (maybe more than once) l Running times 18

BSTs versus AVL Trees Operation BSTs AVL Trees search insert delete find. Min find.

BSTs versus AVL Trees Operation BSTs AVL Trees search insert delete find. Min find. Max 19

Implementations of Priority Queues l Unsorted linked list ¡ insertion O( ) ¡ delete.

Implementations of Priority Queues l Unsorted linked list ¡ insertion O( ) ¡ delete. Min O( ) l Sorted linked list ¡ insertion O( ) ¡ delete. Min O( ) l AVL trees ¡ insertion O( ) ¡ delete. Min O( ) l Unsorted array ¡ insertion O( ) ¡ delete. Min O( ) l Sorted array ¡ insertion O( ) ¡ delete. Min O( ) l Heaps ¡ insertion O( ) ¡ delete. Min O( ) 20

Heaps l Properties l Array implementation l Insert ¡upheap percolation l Other operations: ¡decrease.

Heaps l Properties l Array implementation l Insert ¡upheap percolation l Other operations: ¡decrease. Key(i, k) ¡increase. Key(i, k) ¡delete(i) l Delete ¡downheap percolation l Running time 21

Heap Sort Using a temp heap T In-place sorting for (i = 0; i++;

Heap Sort Using a temp heap T In-place sorting for (i = 0; i++; i < n) T. insert(A[i]); for (i = 0; i++; i < n) A[i] = T. delete. Min(); run build. Heap on A; repeat delete. Max; copy. Max; until the heap is empty; Running time = ?

build. Heap l Bottom-up heap construction runs in O(n) time. l Bottom-up heap construction

build. Heap l Bottom-up heap construction runs in O(n) time. l Bottom-up heap construction is faster than n successive insertions, which take O(nlogn). speeds up the first phase of heap-sort. 23

Hashing l Table size (a prime number) l Hash functions ¡ For integer keys

Hashing l Table size (a prime number) l Hash functions ¡ For integer keys l division (modular) l MAD ¡ For strings: polynomial accumulation Collision handling l Separate chaining l Probing (open addressing) ¡Linear probing ¡Quadratic probing ¡Double hashing l z = 33, 37, 39, 41 l Probing: 3 types of cells (null, in use, available) 24

Comparing Collision Handling Schemes l Separate chaining: – simplementation – faster than open addressing

Comparing Collision Handling Schemes l Separate chaining: – simplementation – faster than open addressing in general – using more memory l Linear probing: items are clustered into contiguous runs (primary clustering). l Quadratic probing: secondary clustering. l Open addressing: l Double hashing: – using less memory distributes keys more – slower than chaining in uniformly than linear general probing does. – more complex removals 25

Graphs l Definitions (terminology) l Properties (with respect to V and E) l Data

Graphs l Definitions (terminology) l Properties (with respect to V and E) l Data structures ¡ Adjacency matrix ¡ Adjacency lists l Running time of graph methods l Graph traversal algorithms: ¡ BFS ¡ DFS 26

Properties of Undirected Graphs Property 1 Sv deg(v) = 2 E Proof: each edge

Properties of Undirected Graphs Property 1 Sv deg(v) = 2 E Proof: each edge is counted twice Property 2 In an undirected graph with no loops E V (V - 1)/2 Proof: each vertex has degree at most (V - 1) Notation V number of vertices E number of edges deg(v) degree of vertex v Example ¡V = 4 ¡E = 6 ¡ deg(v) = 3 What is the bound for a directed graph? 27

Applications of DFS and BFS Applications DFS BFS Spanning tree/forest, connected components, paths, cycles

Applications of DFS and BFS Applications DFS BFS Spanning tree/forest, connected components, paths, cycles Shortest paths Biconnected components L 0 A B C E D F DFS L 1 A B L 2 C E BFS D F 28

Final Exam l Date: Sunday, 17 April Time: 10: 00 -13: 00 (180 minutes)

Final Exam l Date: Sunday, 17 April Time: 10: 00 -13: 00 (180 minutes) l Materials ¡Lectures notes from the beginning up to and including the lecture on March 31. ¡Corresponding sections in the textbook. ¡Assignments 1 to 5. 29

Exam Rules l This is a closed-book exam. No books, notes or calculators are

Exam Rules l This is a closed-book exam. No books, notes or calculators are allowed. You will be given blank paper for scrap work. l Bring a photo ID, pens, and pencils. You may use pencils with darkness of at least HB; 2 B is preferred. l No questions are allowed during the exam. l You may leave the classroom if you hand in your exam booklet 10 minutes or more before the exam ends. 30 l

Exam Rules (2) l Programming problems will be marked based on both correctness and

Exam Rules (2) l Programming problems will be marked based on both correctness and efficiency. l You may use either Java or Java-like pseudo-code, but if an interface or class is given, you must use the methods and data structure(s) of the interface/class. 31

Office Hours before Exam (tentative) l Wednesday, 6 April, 11: 00 -12: 00 l

Office Hours before Exam (tentative) l Wednesday, 6 April, 11: 00 -12: 00 l Thursday, 14 April, 14: 00 -15: 00 32