(a)

Analysis and design of algorithms for a given situation

(b)

The suitability of different algorithms for a given task and data set in terms of both execution time and space

(c)

Measures and methods to determine the efficiency of different algorithms including Big O notation for the following time complexities::

  • constant
  • linear
  • polynomial
  • exponential
  • logarithmic

(d)

Comparison of complexity of algorithms

(e)

Algorithms for the main data structures:

  • stacks
  • queues
  • trees
    • depth-first (post-order) traversal
    • breadth-first traversal
  • linked lists

See also 1.4.2 Data structures

(f)

Standard algorithms:

  • bubble sort
  • insertion sort
  • merge sort
  • quick sort
  • Dijkstra’s shortest path
  • A*
  • binary search
  • linear search