(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