Skip to content

This repository provides a collection of fundamental computing algorithms designed to solve a variety of problems across different domains in computer science. The algorithms are implemented in Python, with detailed explanations, and cover both basic and advanced topics.

Notifications You must be signed in to change notification settings

MahmoudHanyFathalla/Computing-Algorithms

Repository files navigation

Computing Algorithms

This repository provides a collection of fundamental computing algorithms designed to solve a variety of problems across different domains in computer science. The algorithms are implemented in Python, with detailed explanations, and cover both basic and advanced topics. Whether you're learning algorithms for the first time or looking for efficient implementations, this repository aims to provide practical solutions and insights for a wide range of computational challenges.

Features

  • Algorithm Implementations: Efficient implementations of classic algorithms in various domains, including sorting, searching, graph theory, dynamic programming, and more.
  • Well-Commented Code: Each algorithm is implemented with clear, concise comments to ensure understanding and ease of use.
  • Optimized Solutions: Focus on providing solutions that are both efficient in terms of time and space complexity.
  • Real-World Applications: Algorithms are chosen based on their relevance to real-world problems and their practical utility.
  • Test Cases: Includes a set of test cases to validate the correctness of each algorithm implementation.

Algorithms Covered

  • Sorting Algorithms: QuickSort, MergeSort, BubbleSort, InsertionSort, SelectionSort, etc.
  • Searching Algorithms: Binary Search, Linear Search, and more.
  • Graph Algorithms: Dijkstra’s Algorithm, Bellman-Ford, DFS, BFS, etc.
  • Dynamic Programming: Fibonacci Series, Knapsack Problem, Longest Common Subsequence, etc.
  • Greedy Algorithms: Fractional Knapsack, Huffman Encoding, etc.
  • Mathematical Algorithms: Prime Number Checking, GCD, LCM, etc.
  • Miscellaneous: Backtracking, Divide and Conquer, etc.

Installation

To start using the algorithms in this repository, simply clone it to your local machine:

git clone https://github.com/MahmoudHanyFathalla/Computing-Algorithms.git

You can run the individual algorithm scripts directly or integrate them into your own projects.

Usage

Each algorithm is implemented as a separate Python script. For example, to run a sorting algorithm:

python sorting/quick_sort.py

Feel free to modify and adapt the code as needed for your own use cases.

Contributing

Contributions are always welcome! If you'd like to add an algorithm, improve an existing one, or provide feedback, feel free to fork the repository, make changes, and create a pull request.

License

This project is open-source and available under the MIT License.

About

This repository provides a collection of fundamental computing algorithms designed to solve a variety of problems across different domains in computer science. The algorithms are implemented in Python, with detailed explanations, and cover both basic and advanced topics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages