Skip to content
This repository has been archived by the owner on Sep 26, 2020. It is now read-only.

Latest commit

 

History

History

algorithms_and_data_structures_ii

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Go back to the main page

Table of contents


Algorithms and Data Structures II

This module aims to provide you with detailed knowledge of several common algorithms and data structures. You will improve your understanding of searching and sorting and learn new algorithms to solve new problems. You will learn about a range of data structures such as trees, heaps, sets, maps, stacks, queues and graphs. You will learn how to evaluate and describe the performance of algorithms using big-O notation. You will learn: how to choose appropriate data structures for representing problems, how to define and implement algorithms for manipulating them, and how to analyse the correctness and efficiency of algorithms.

You will be expected to have mastered the material in Algorithms and Data Structures I before attempting this module.

Topics covered

  • Complexity, growth of functions and big-O notation
  • Stacks and queues
  • Binary trees
  • Heaps and priority queues
  • Implicit array algorithms
  • Recursion and Iteration
  • Graphs and simple pathfinding
  • Shortest-path algorithms
  • Sets, maps and hash tables
  • Collections

Assessment

One two hour unseen written examination and coursework (Type I)

Module specification

Syllabus

List of required reading

Book - Cormen, T.H., C.E. Leiserson, R.L. Rivest and C. Stein Introduction to algorithms. (MIT Press, 2009) 3rd edition [ISBN 9780262533058].

Week Topic Section Page number
1 RAM Model 2.2 pp. 23-4
2 Worst and average case analysis p. 27
2 Asymptotic notation 3.1 43-52
4 Recursive algorithm and analysis 2.3, ch. 4 (except 4.6) pp. 29-37, pp. 65-113
5 Insertion Sort 2.1, 2.2 pp. 16-22, pp. 23-9
6 QuickSort Ch.7, 7.1, 7.2 pp. 170-3, pp. 174-8
6 MergeSort 2.3.1, 2.3.2 pp. 30-34, pp. 34-37
7 Lower bounds for comparison sorts Chapter 8, 8.1 pp. 191-3
7 Counting Sort 8.2 pp 194-6
8 Radix Sort 8.3 pp. 197-9
8 Bucket Sort 8.4 pp. 200-
9 Hashing 11 pp. 253-285
13 Linked Lists definition of DS, 10.2 p.9, pp.236-41
14 Stacks and Queues 10.1 pp 232-5
16 Binary search trees ch. 12, 12.1, 12.2, 12.3 pp. 286-8, pp. 289-92, pp.294-8
17 Heaps, Heapsort and priority queues Chapter 6 pp. 151-69
19 Graph representation, MST and Dijsktra Ch.22- 22.1, Ch. 23, Ch 24-Ch. 24.3 pp. 579-92, pp. 624-42, pp.658-66

Resources

Complementary learning

Mock exam

Solutions shared by students

Notes

Solutions to the textbook Introduction to Algorithms