Programming Fundamentals

- 1 min

This is a sincere effort to learn all the computer programming fundamentals that I had learnt and forgotten or never learnt. Planning to begin learning from the core fundamentals and slowly move to advanced topics.

Disclaimer: Please note, Most if not all of the material is something I have gleaned from the internet. I have tried to add the links in the References section. If I have missed anything, please let me know so that I am not infringing on any copyright.

Table of Contents

  1. Home
  2. Data Structures
    1. Static Arrays
    2. Vectors/Dynamic Arrays
    3. Lists
    4. Stacks
    5. Priority Queues
    6. Hash Tables
    7. Binary Search Trees
    8. Red-Black Trees
    9. AVL Trees
    10. Trie
    11. Segment Tree
    12. Suffix Tree
    13. B Trees
    14. kd Trees
    15. Bloom Filters
    16. Disjoint Set Data structures
    17. Fibonacci Heap
    18. Skip Lists
  3. Algorithms
    1. Basic Sorting Algorithms
      1. Insertion Sort
      2. Selection Sort
      3. Heap Sort
      4. Shuffling
      5. Selection -> TBD
    2. Divide and Conquer
      1. Binary Search
      2. MergeSort
      3. Quick Sort
        1. 3 way Quick Sort (Dijkstra)
      4. Straseen Matrix Multiplication
    3. Recursion
      1. Substituion Method
      2. Recursion Method
      3. Master’s Theorem
    4. Graph Algorithms
      1. Breadth-First Search
      2. Depth First Search
      3. Topological Sort
      4. Minimum Spanning Trees
        1. Kruskals MST
        2. Prims MST
      5. Shortest Path
        1. Bellman Ford Single Source
        2. Dijkstra’s Single Source
        3. Floyd-Warshall All-Pairs
        4. Johnson All-Pairs
      6. Maximum Flow
        1. Ford-Fulkerson method
        2. Maximum bi-partite matching
    5. Greedy Algorithms
      1. Activity Selection Problem
      2. Huffman Codes
    6. String Matching
      1. Native Pattern Searching
      2. Robin-Karp
      3. Knuth-Morris-Prat
      4. Finite Automata
      5. Boyes Moore
    7. Back Tracking
    8. Dynamic Programming
    9. Computational Geometry
      1. Convex Hull
        1. Jarvis March
        2. Graham Scan
      2. Closest Pair of points
      3. Line segment intersection
    10. NP Completeness
    11. Bit Manipulations
  4. C++ Fundamentals
    1. Effective C++ - Scott Meyers
    2. std::unique_ptr
    3. std::async
    4. strncpy
    5. std::swap
    6. constexpr
    7. std::string_view
  5. [References]
Vidhatha Vivekananda

Vidhatha Vivekananda

Programmer. Interested in nature and philosophy.

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora