This is most of the material for the present course, CS 3343!
My assumption is that you have not yet mastered all these topics.
We will cover some of the above topics as if you hadn't already
done them (quick sort, heap sort). Others will be reviewed
or interspersed as needed (A and B below), and
some will be skipped (Huffman code, perhaps hashing).
We will seldom use the Java (or C, or C++) libraries for
our data structures, but instead write them from scratch.
Elementary data structures (review, interspersed where needed):
Stacks, queues.
Linked lists.
Binary trees.
Growth of functions, recurrences (partial review,
interspersed where needed):
Asymptotic bounds, notation.
Recurrences.
Master theorem.
Recursion (partial review in the second recitation)
Introduction:
Exponentiation (integer exponent), slow way, two different fast ways.
Performance of fast exponentiation, "big-O" notation.
Other order notations.
Proof of correctness of exponentiation.
Divide-and-conquer:
Binary search.
Ternary search.
Strange search.
Quick sort:
Basic algorithm.
Randomized algorithm.
Besting an opponent who has arbitrary computing power.
Heap sort:
Heaps.
Basic algorithm.
Priority queue.
Strassen's matrix multiplication:
Basic approach.
Solving the recurrence.
Binary trees (partly review):
Binary search trees
Representation of a tree (rooted, with unbounded
branching) as a binary tree.
Traversals, searches, insertion.
Balanced binary trees (AVL, Red-Black), without tears.
Dynamic programming:
Memoization.
Matrix-chain multiplication.
Subset-sum problem.
Line breaks for optimal paragraph formatting.
Greedy algorithms:
Translating to Roman numerals.
Making change.
Graphs and graph algorithms:
Introduction to graphs.
Data structures for graphs: adjacency-list
versus adjacency-matrix.
Definitions, decision problems versus optimization problems.
Circuit-satisfiability and the main theorem.
Examples, reductions.
Subset-sum and strong NP-completeness.
Approximation algorithms.
Undecidable problems:
Models of computation, Turing completeness, Church-Turing Thesis.
Halting problem, word problem undecidable.
Other problems, discussion.
"Weird" Topics:
These are covered in a separate page:
Weird Topics.
Revision date:2011-10-01.
(Please use ISO 8601,
the International Standard Date and Time Notation.)