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