Presentation is loading. Please wait.

Presentation is loading. Please wait.

Final Review Dr. Yingwu Zhu.

Similar presentations


Presentation on theme: "Final Review Dr. Yingwu Zhu."— Presentation transcript:

1 Final Review Dr. Yingwu Zhu

2 Goals Use appropriate data structures to solve real-world problems
E.g., use stack to implement non-recursive BST traversal, use queue to implement BST level traversal, use stack to implement non-recursive quicksort Use appropriate algorithms to slove real-world problems Search algorithms Sorting algorithms

3 Goals Use Big-Oh notation to evaluate algorithm efficiency
Understand ADTs including BST, Heap, Priority Queue, AVL trees Understand hashing Understand sorting algorithms

4 ADTs Tree terminologies BST AVL Trees Heap Priority Queue

5 Trees Binary trees Complete trees Balanced trees Level Height

6 BST Definition Recursive ADT
Implementing a BST (recursive and non-recursive) Search Traversals (in-order, pre-order, post-order) Insertion Deletion Other operations: height, level, …

7 BST T(n) = ? Is BST balanced? Lopsidedness problem! BST  AVL trees

8 AVL Trees Definition Four rotation techniques
Single rotations Double rotations Key to perform rotation: identify the nearest ancestor with BF of +2 or -2 for the inserted item Two steps in double rotations Rotate child and grandchild nodes of the ancestor Rotate the ancestor and the new child node

9 Heap Defintion Recusive data structure Semiheap
What data structures are good to implement a heap? Why? Parent-child relationships

10 Heap Implementation Two basic operations Insertion Deletion removeMax
Other operations? Two basic operations Percolate down Percolate up

11 Priority Queue Definition
Using different ADTs to implement priority queue Unsorted lists Sorted lists BST Heap Why heap is a good choice?

12 Hashing Why need hashing? Definition of hash function?
Problem of hashing: collision

13 Hashing Collision resolution techniques Open addressing Chaining
Linear probing Quadratic probing Double hashing Chaining

14 Hashing Three strategies to improve hashing performance
Increase hash table capacity Use a good hash function (how to evaluate a hash function?) Use a good collision resolution technique

15 Algorithm Efficiency Big-Oh notation definition T(n)
Non-recursive algorithms The most executed instruction Recursive algorithms: telescoping principal Anchor case Inductive step

16 Sort Selection sort, insertion sort, bubble sort Heapsort Quicksort
Mergesort

17 Selection Sort How does it work? T(n) = ?

18 Insertion Sort How does it work? T(n) = ?
Recursive and Non-recursive algorithms

19 Bubble Sort How does it work?
How does it detect partially sort sublist to improve performance T(n) = ? Best case performance Worst case performance Two-way bubble sort in Exam 2

20 Quicksort How does it work? Basic operation
Devide and conquer Basic operation Split based on pivot T(n) = ? , best case and worst case?

21 Quicksort How to improve performance
Median-of-three rule in pivot choice Short sublists are handle first in recursive alg. Non-recursive Other solutions

22 Mergesort Internal and external algorithm
Basic operation: split and merge Binary mergesort Natural mergesort How does natural merge sort work? Exploit partially sort sublists in split and merge T(n) = ?

23 Heapsort Heapify process How does heapsort work?
Exploits heap property T(n) = ?

24 Other Basics Iterators and vectors in STL
Function templates and class templates Overloading operators Overloading functions Copy constructors

25 About Final Exam Must >= 75 to pass Multiple choices Short answers
Coding Reminder: do not loose points in basic concept questions! Good luck!


Download ppt "Final Review Dr. Yingwu Zhu."

Similar presentations


Ads by Google