CIS 263 |
Final Exam Review |
Fall 2019 |
- The final exam will be cumulative. Be sure to review material from the first two exams.
- Also review all the lecture notes (linked at the bottom of the course web page).
- The final exam is Wednesday, 11 December, at 2:00 and 4:00. You can come at either time, regardless of which section you are enrolled in. (You must pick one time or the other, because I'll need a break between.)
- Understand the formal definition of big-O and be able to explain why we use it instead f simply counting operations.
- Under what conditions does the O(n log n) lower bound for sorting apply?
- What is an iterator? Why do we use them?
- How do C++ templates differ from Java generics?
- What are the relative advantages and disadvantages of B trees as compared to binary search trees?
- Under which conditions are B-trees better than binary search trees?
- How do Linear Congruential Generators work? What are their strengths and weaknesses?
- By definition, which algoritms are in P?
- By definition, which algorithms are in NP?
- Is matrix multiplication in NP?
- What is an online algorithm? How does it differ from an offline algorithm?
- Describe an online sorting algorithm.
- Describe an O(n log n) algorithm for either the first-fit or best-fit bin packing problem.
- Give examples of where the algorithm with the lowest big-O worst-case runtime is not the most commonly used algorithm.
- Rod problem from
www.cs.umb.edu/~henryzlo/cs310/problems1/problems.pdf
- What data structure is typically used to implement a priority queue?
- List several uses of a priority queue.
- How does a d-Heap differ from a binary heap? When/Why is one used?
- Give pseudocode for merging disjoint sets.
- With respect to merging disjoint sets, what is "path compression"
- What is the "halting" problem?
- Give a sketch of the proof that the halting problem is undecidable.
- What is a Huffman Code?
- Give pseudocode for an algorithm to generate a Huffman code.
- Why is there a greedy algorithm for generating a Huffman code, but no greedy algorithm for generating an optimal binary search tree?
- What are the key aspects of a divide and conquer algorithm?
- What are the key aspects of a dynamic programming algorithm?
Updated Saturday, 23 November 2019, 11:39 AM