Algorithms

Sorting

Concepts

  • Stability

  • Locality

  • Design, implementation (code), and common optimizations

Basic sorting algorithms

  • Bubble sort

  • Insertion sort

  • Selection sort

  • Shell sort

    • Pay attention to the implementation

Recursion

  • Principle

    • Divide and conquer

  • Call stack management

  • Impact on space complexity

  • Recursive form of common algorithms (e.g. binary search)s

Data structures

  • Stacks

  • Queues

  • Lists

Know their:

  1. ADT & primitives

  2. Implementation (contiguous vs. dynamic memory)

  3. When to use them (as exemplified by code examples discussed in lectures)

  4. Time and space complexity

Analysis

  • Big-O/Omega/Theta notations

    • Definition

    • Growth hierarchy of common functions

    • Time/space complexity of the algorithms that we have learnt

  • Little-o/Omega notations

  • Summation formulas

summation1
summation2