University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Advanced Data Structures and Algorithms:  2009-2010

Information

Lecturer

Degrees

Part A OptionsHonour School of Computer Science

Schedule B1Honour School of Computer Science

Schedule B1Honour School of Mathematics and Computer Science

ECS Part IIMEng Engineering and Computing Science

Term

Overview

This course builds on the first-year Design and Analysis of Algorithms course. It introduces students to a number of highly efficient algorithms and data structures for fundamental computational problems such as primality testing, linear optimisation, and string matching. Students are also introduced to randomised algorithms and to techniques of amortised complexity analysis. As in the core course, the style of the presentation is rigorous but not formal.

Learning outcomes

On successful completion of the course students will:

Synopsis

Syllabus

Amortised analysis. 

Splay trees. 

Mergable heaps.  

Disjoint sets / Union-find: complexity analysis and applications

Primality testing: the Miller-Rabin algorithm and its probabilistic correctness

String matching: the Rabin-Karp and Knuth-Morris-Pratt  algorithms

Max-flow: the Edmonds-Karp algorithm; some applications in optimisation and graph theory

Linear programming: formulating optimisation problems as linear programs; the simplex method; duality.

Reading list

The main text used in the course is:

The following text is a useful alternative.