Learning Data Structure and Algorithms

Introduction

Top Algorithms and sub-tpoics

  1. Sort algorithms
    • Merge sort
    • Quick sort
    • Bucket sort
    • Heap Sort
    • Counting sort
  2. Searching algorithms
    • Binary search
    • Depth/Breadth first search
  3. Hashing
  4. Dynamic programming
  5. Exponentiation by squaring
  6. String Matching and Parsing
    • KMP algorithm (string matching)
    • Regular expression (string parsing)
  7. Primality testing algorithms
    • Sieve of Eratosthenes (deterministic)
    • For any number n, incrementally testing up to sqrt(n) (deterministic)
    • Fermat primality test (nondeterministic)
    • Miller–Rabin primality test (nondeterministic)

Important data strucures

  1. Arrays and lists
  2. 2D arrays
  3. Strings
  4. Linked list
  5. Stack
  6. Queue
  7. Hash table & hash set
  8. Heap
  9. Graphs
  10. Binary tree
  11. Binary search tree
  12. Trie

Other topics

  1. Time & space complexity
  2. Line sweep technique

References

  1. How to improve DSA skills
  2. Top 7 algorithms and data structures
  3. Sites to practice coding:
    1. GeeksforGeeks
    2. binarysearch
    3. LeetCode
    4. HackerEarth
    5. HackerRank
  4. To learn dynamic programming

To-Do

  1. Setup a git repo with my code solutions and explanations if possible.
Originally published on: 14 Apr 2021