/py-data-structures-and-algorithms

Learning materials for data structures and algorithms in Python.

Primary LanguagePythonMIT LicenseMIT

py-data-structures-and-algorithms

Basic principles

OOP design goals

  • Robustness
  • Adaptability
  • Reusability

OOP design principles

  • Modularity
  • Abstraction
  • Encapsulation

Software development

  1. Design
  2. Implementation
  3. Testing & Debugging

Characterization of the running times & space usage of algorithms

  1. Constant func f(n) = c
  2. Logarithm func f(n) = log n
  3. Linear func f(n) = n
  4. N-log-N func f(n) = n log n
  5. Quadratic func f(n) = n^2
  6. Cubic func f(n) = n^3
  7. Exponential func f(n)=b^n

1, log(n), n, n * log(n), n2, n3, 2n


Learning materials for data structures and algorithms with Python

  1. Stacks, Queues, Deques
  2. Linked Lists
  3. Trees
  4. Priority Queues
  5. Maps, Hash Tables, Skip Lists
  6. Search Trees
  7. Sorting and Selection
  8. Text Processing
  9. Graph Algorithms
  10. Memory Management