Algorithms

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

  • Arrays.
  • Lists (single linked and double linked)
  • Stack
  • Queue. Difference between list and queue.
  • Sorting
    • Comparison Sort. Comparison sort algorithm class. Know that comparison sort cannot do better than n ln n. Proof in a separate article.
    • Non-comparison Sort
    • Sorting algorithms characteristics (in-place, stability)
  • Algorithm complexity, Bounds. Understand and document O, Omega and Theta notations. Perform complexity analysis on all the algorithms I examine. Expected running time, worst-case running time. Average case running time.
  • Iteration and recursion – fundamentally different approaches.
  • Set
  • Map
  • Hash Map
  • Distributed Hash Map. Insist on this as is key to systems that scale.
  • Collision resistant hash function.
  • Trees
    • Binary Trees. Binary tree height.
      • Sorting trees. Difference between a binary search tree and a red-black tree.
    • BTrees
  • Tree walking algorithms. Difference between depth first and breadth first.
  • Graphs
  • Graph algorithms
  • Dynamic programming and memoization.
  • Greedy algorithms.
  • Matrix multiplication (NOKB and code).
  • lg and ln notation. Link from the Mathematics main page.
  • Random variable analysis. Indicator random variable.

Probability Distribution.

  • Consider starting upside down, with the bottom (math) sections, and NOKB concepts from them first.
  • Mathematics: Understand and document induction.
  • Need to understand aggregate analysis Section 17.1

Organizatorium