Skip to main content

A collection of various algorithms and data structures

Project description

Algorithm Selector

Publish to PyPI PyPI License Python Version Code Size Last Commit Issues Pull Requests

Overview

This repository contains a comprehensive collection of algorithms across various domains including computational algorithms, data structures, machine learning, cryptographic methods, and more. Each algorithm is implemented with a focus on clarity, efficiency, and adherence to best practices.

Table of Contents

Installation

To get started with this repository, clone it to your local machine using:

git clone https://github.com/thomasthaddeus/AlgorithmSelector.git
cd algorithm-repository

Install the required dependencies:

pip install -r requirements.txt

Usage

Each algorithm is encapsulated in its own class and can be used independently. Here's an example of how to use an algorithm from the repository:

from src.data_structures.binary_search_tree import BinarySearchTree

# Example usage
bst = BinarySearchTree()
bst.insert(3)
bst.insert(1)
bst.insert(4)
print(bst.search(1))  # Output: True or False

Directory Structure

The repository is organized as follows:

  • src/: Contains the source code for all algorithms.
    • computational/: Computational algorithms like FFT, Monte Carlo, etc.
    • data_structures/: Common data structures like AVL Tree, Heap, etc.
    • ml/: Machine learning algorithms like k-means, linear regression, etc.
    • ... (other directories following a similar structure)
  • tests/: Contains unit tests for each algorithm.
  • docs/: Documentation related to the algorithms.
  • scripts/: Useful scripts like setup or build scripts.
  • requirements.txt: List of dependencies for the project.
  • pyproject.toml: Project metadata and configuration.

Testing

To run the tests, navigate to the root directory of the project and run:

python -m unittest discover -s tests

Contributing

Contributions to the repository are welcome! Here's how you can contribute:

  1. Fork the repository and create your branch from main.
  2. Write your algorithm or improvement.
  3. Ensure your code passes all existing tests and add new tests if necessary.
  4. Submit a pull request.

Please ensure your code adheres to the existing style conventions and add relevant documentation.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

algorithmselector-1.1.0.tar.gz (41.1 kB view hashes)

Uploaded Source

Built Distribution

algorithmselector-1.1.0-py3-none-any.whl (4.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page