shrishti-04/Python_DSA

Repository files navigation

This repository contains a collection of Data Structures and Algorithms (DSA) implementations in Python. It covers fundamental concepts, problem-solving techniques, and efficient coding practices to strengthen algorithmic skills.

  • Topics Covered: Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Sorting, Searching, Recursion, and more!
  • Ideal For: Competitive programming, coding interviews, and improving problem-solving skills.
  • I have also prepared hand written notes, incase if you don't understand any concept you might refer my hand written notes,
    Or can directly contact me on my phone number: 8208705735, or Mail me: [email protected]

    Here are my hand written Python Basic Notes:

    Python Basic Notes Part 1
    Python Basic Notes Part 2

    Plays an important role in understanding loops, optimizing iterations, and improving coding logic.

    Here are my Hand-written notes for Patterns:

    Pattern Notes

    Time complexity shows how the execution time of an algorithm increases as the input size grows.

    Time Complexity

    Hashing is a method of storing and finding data quickly by using a special code (hash) instead of searching through everything.

    Here are my hand written notes on Hashing

    Hashing Notes

    Two-pointer is an algorithmic technique where two indices (or pointers) traverse a data structure from different positions to optimize time and space complexity.

    Here are my hand written notes on Two Pointer

    Two Pointer Notes

    A search algorithm that repeatedly divides a sorted array in half to find a target element in O(log n) time.

    Here are my hand written notes on Binary Search

    Binary Search Notes

    A problem-solving approach that makes locally optimal choices at each step to find a globally optimal solution.

    Greedy Algorithm Notes

    A technique where a function calls itself to solve smaller subproblems until a base case is reached.

    Recursion Notes

    An optimization method that solves problems by breaking them into overlapping subproblems and storing their solutions to avoid redundant calculations.

    Here are my hand written notes on Dynamic Programming

    Dynamic Programming Notes

    A data structure consisting of nodes (vertices) connected by edges, used to represent relationships and networks.

    Here are my hand written notes on Graphs

    Graphs Notes