2.3 Algorithms
Analyse the suitability of different algorithms for a given task and data set
Be familiar with measures and methods to determine the efficiency of different algorithms
Define constant, linear, polynomial, exponential and logarithmic functions
Use Big-O notation to compare the time complexity of algorithms
Be able to derive the time complexity of an algorithm
Write and trace algorithms for linear search and binary search
Analyse the time complexity of the linear search and binary search algorithms
Describe and trace the binary tree search algorithm
Be able to describe the bubble sort and insertion sort algorithms
Be able to trace the bubble sort and insertion sort algorithms
Understand and be able to trace the merge sort and quick sort algorithms
Be able to trace depth-first and breadth-first algorithms
Describe typical applications of each
Understand and be able to trace Dijkstra’s shortest path algorithm
Be aware of applications of shortest path algorithm
Describe the A* algorithm