CSCI 260: Notes
Here is a rough outline of topics, and supplementary notes. These do
not represent a substitute for attending the lectures, and
often do not cover all the material the lectures do.
- Course intro/overview
- Course outline
- Lab exercises
- Complexity and analysis of algorithms
- Asymptotic complexity
- Proof techniques
- Sorting
- Comb sort, quicksort, mergesort
- Lists
- Merging and sorting linked lists
- Self-organizing lists
- Sparse tables (using lists)
- Array implementations: stacks, lists, queues (ccircular buffers)
- Trees
- Binary search trees: review
- Balancing trees: avl trees
- Red-black trees
- B-trees, B+trees (m-n keys, node join/split)
- Heaps and heapsort
- Hash tables
- Hash tables, function, and collistions
- Hash sort and radix sort
- Choosing ADTs
- Deciding what kind of data structure(s) you need
Midterm Oct. 21st
- Graphs
- Graphs and implementations
- Graph searches (depth-first, breadth-first)
- Spanning trees
- Adjacency list implementation
- Single-source and All-pairs shortest path algorithms
- Graph colouring and resource allocation, zero-knowledge proofs
- Minimax game strategy notes (shorthand)
- Max-flow/min-cut, edge cuts, vertex cuts (see Wiki links below)
- Strings
- String matching/searching: naive/brute force algorithms,
finite state machines, Boyer-Moore algorithm (see Wiki links below)
- String editing: operations (insertion, substitution,
deletion), computing minimal edit distance (see Wiki links below)
Wikipedia links