Skip to content

AjeshRPai/Algorithms-Python

Repository files navigation

Algorithms-Python

GitHub repo size GitHub stars GitHub forks

Welcome to the Algorithms-Python repository! This is a work-in-progress collection of algorithm and data structure problems, along with their solutions implemented in Python. The aim is to provide a comprehensive resource for learning and practicing algorithms, catering to both beginners and seasoned developers looking to brush up on their skills.

🚀 Getting Started

To get started, simply clone the repository:

git clone https://github.com/AjeshRPai/Algorithms-Python.git
cd Algorithms-Python

Explore the different solutions provided in the respective topic directories, and feel free to contribute by adding new solutions, optimizing existing code, or enhancing the documentation.

📚 Topics Covered

The repository is organized by topic, covering a wide range of algorithms and data structures. Here's a list of topics currently included:

1. Arrays

  • Problems related to searching, sorting, and manipulation of arrays.

2. Backtracking

  • Solutions for problems that involve decision trees and state-space search using backtracking techniques.

3. Binary Search Trees

  • Implementation and operations on binary search trees, including insertion, deletion, and traversal methods.

4. Binary Trees

  • Binary tree problems, focusing on traversal techniques and tree manipulation.

5. Bitwise

  • Problems involving bit manipulation for efficient computation.

6. Dynamic Programming

  • Solutions utilizing dynamic programming to optimize recursive problems with overlapping subproblems.

7. Famous Algorithms

  • Implementation of well-known algorithms in computer science, at present it contains only djikstra algorithm.

8. Graphs

  • Graph representation, traversal algorithms (BFS, DFS), and shortest path problems.

9. Greedy Algorithms

  • Problems solvable through greedy methods, where local optimal choices lead to a globally optimal solution.

10. Heaps

  • Implementation and problems involving heaps, such as priority queues and heap sort.

11. Linked Lists

  • Linked list operations, including singly and doubly linked list manipulations.

12. Logical

  • Miscellaneous logical problems and puzzles solved using various algorithmic approaches.

13. Math & Geometry

  • Mathematical problems and geometric algorithm implementations.

14. Sliding Window

  • Techniques for solving problems that involve maintaining a subset of items in a sliding window format.

15. Sorting

  • Various sorting techniques, including comparisons and non-comparison based sorts.

16. Stacks

  • Stack operations and problems, including infix-to-postfix conversion, balanced parentheses, etc.

17. Strings

  • String manipulation, pattern matching, and other string-related algorithm problems.

18. Two Pointer

  • Two-pointer techniques applied to array and string problems for efficient solutions.

🛠️ Future Plans

  • Add more advanced algorithms and data structures.
  • Enhance documentation with detailed explanations of each solution.
  • Provide time and space complexity analysis for each solution.

📫 Contact

For any questions or suggestions, feel free to reach out via email.


Feel free to update this README as new topics are added or changes are made to the structure of the repository!

About

Data Structures and Algorithms in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages