Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review for Final Exam Non-cumulative, covers material since exam 2

Similar presentations


Presentation on theme: "Review for Final Exam Non-cumulative, covers material since exam 2"— Presentation transcript:

1 Review for Final Exam Non-cumulative, covers material since exam 2
Data structures covered: Priority queues and binary heaps Hashing Skip lists Disjoint sets Graphs For each of these data structures Basic idea of data structure and operations Be able to work out small example problems Prove related theorems Advantages and limitations Asymptotic time performance Comparison Review questions are available on the web.

2 PQ and Heap Binary heap Heap operations (implemented with array)
Definition: CBT with a partial order (heap order) Why it is good for PQ Heap operations (implemented with array) findMin, deleteMin, insert percolateUp (for insertion), percolateDown (for deletion) Heap construction (heapify), Heap sort Time performance of these operations Leftist tree and leftist heap Why we need this? Definition (npl: null path length) Meld operations and applications insert, deletMin, heap construction

3 Hashing Hash table Hashing functions Collision management
Table size (primes) Trading space for time Hashing functions Properties making a good hashing function Examples of division and multiplication hashing functions Operations (insert/remove/find/) Collision management Separate chaining Open addressing (different probing techniques, clustering problem) Worst case time performance: O(1) for find/insert/delete if  is small and hashing function is good Limitations Hard to answer order based queries (successor, min/max, etc.)

4 Skip Lists What is a skip list Why need skip lists
Nodes with different size (different # of skip pointers) Node size distribution according to the associated probability p Nodes with different size do not have to follow a rigid pattern The expected # of nodes with exactly i pointers (pi-1(1- p)) How to determine the size of the head node (log1/p N) Why need skip lists Expected time performance O(lg N) for find/insert/remove Probabilistically determining node size facilitate insert/remove operations Advantages over sorted arrays, sorted list, BST, balanced BST

5 Skip list operations Performance find
insert (how to determine the size of the new node) Set pointers in insert and remove operations (backLook node) Performance Expected time performance O(lg N) for find/insert/remove (very small prob. of poor performance when N is large) Expected # of pointers per node: 1/(1 - p)

6 Disjoint Sets Equivalence relation and equivalence class
definitions and examples Disjoint sets and up-tree representation representative of each set direction of pointers Union-find operations basic union and find operation path compression (for find) and union by weight heuristics time performance when the two heuristics are used: O(m lg* n) for m operations (what does lg* n mean) O(1) amortized time for each operation

7 Graphs Graph definitions Adjacency and representation
G = (V, E), directed and undirected graphs, DAG path, path length (with/without weights), cycle, simple path connectivity, connected component, connected graph, complete graph, strongly and weakly connectedness. Adjacency and representation adjacency matrix and adjacency lists, when to use which time performance with each Graph traversal: DF and BF Single source shortest path Dijkstra’s algorithm (with weighted edges) Topological order (for DAG) What is a topological order (definitions of predecessor, successor, partial order) Algorithm for topological sort


Download ppt "Review for Final Exam Non-cumulative, covers material since exam 2"

Similar presentations


Ads by Google