/relearning_algorithms

Self-learning projects to remind myself of algorithms and data structure

Primary LanguagePython

Relearning algorithms with 10 years of hindsight

Goal and motivation

I hated algorithm classes at university. I was always more into electronics, networking and system programming. However, in my current position as a senior engineer and interviewer, I frequently find myself in a position where I need to check people's thinking skills or give them suggestions how to improve their code. After solving some interview questions myself, I noticed I forgot many optimal ways of solving problems. Problems, for which mathematically proven optimal solutions exist. To that end, I want to re-learn a couple of major algorithms. to both improve my design skills and my interview skills.

My plan is as follows:

  1. Implement at least one algorithm/data structure from the following categories:
  • Sorting
  • Tree traversal
  • Dynamic programming (Dijkstra, A*)
  • Heap
  • Hashing algorithm
  • Asymmetric cryptography
  • Image processing (e.g. unsharp mask)

Format

Each algorithm should be a single runnable file in Python.

I will implement the algorithm based on the description, note down my questions as I code, then reimplement after reading on the best known solution.