Introduction
What is an algorithm?
What is a data structure?
Inductive reasoning
Inductive proof
Complexity of an algorithm
Sorting by insertion
Analysis of sorting by insertion
Asymptotic notations
Sorting, Heap, Recursion
Divide-and-conquer method.
Sorting by merging - MergeSort.
Complexity of merge sorting.
Recursion, computing recursive complexity, solving recursion, the universal recursion theorem.
Heap, heap property, restoring heap property, building a heap.
Analysis of heap algorithms
Heap Sorting, Priority Queues, Priority Sorting, Quicksort.
Priority queues, Quicksort, Linear time sorting.
Priority queues
Heap operations
Implementation of priority queues
Quicksort
Algorithm
Quicksort analysis
Decision Tree Model alg. Sorting
Sorting by counting, positional sorting, bucket sort.
Dynamic Sorts, Stack, List
Data structures, Stack, Queue, List, BST and RB Trees.
Dynamic Sets
Stack
Queue
List
BST tree
browse, search, delete operations
complexity of BST tree operations
Well-balanced trees
Skip lists, hash tables, positional statistics
Dynamic positional statistics, interval trees, graphs.
Graphs, DFS, graph spanning tree, topological sorting.
Graph algorithms
Graph Searching
BFS, DFS
spanning tree creation
edge classification
directed acyclic graph
Graph algorithms, search for minimal paths.
Minimum spanning tree
Observation, optimal structure consists of optimal substructures.
Prim algorithm for searching a minimal spanning tree * Prima algorithm for searching a minimal spanning tree
Searching for minimal paths in any directed graph, Ford Bellman algorithm.
A version of the Ford Bellman algorithm for directed acyclic graphs.
Searching for shortest paths in a graph with nonnegative edge weights, Dijkstra's algorithm.
Graph algorithms, amortised cost method.
Flow networks, pattern finding algorithms
Text algorithms
Text compression, Parallel algorithms
Geometric algorithms
basic concepts
determining the position of points relative to each other
the problem of intersection of two segments.
construction techniques for geometric algorithms
the problem of finding the convex envelope of a set of points
Graham's algorithm for finding the convex envelope of a set of points.
Finding intersecting segments in a set of segments.
algorithm for finding intersecting segments by the sweeping method
problem of finding the least distant pair of points in a point set
Summary lecture