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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file algorithmselector-1.1.0.tar.gz.

File metadata

  • Download URL: algorithmselector-1.1.0.tar.gz
  • Upload date:
  • Size: 41.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/6.2.0-1018-azure

File hashes

Hashes for algorithmselector-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fd36adc99675d244aa9a65884370941055587974349adc35b67a1949b0dd14be
MD5 3dbc4cde4a33fb1d40c54cb4e896d273
BLAKE2b-256 1d773a49a8a54527f423e4ec55378399f7b5f527bc1c5bd8926a85d9c5b80e6d

See more details on using hashes here.

File details

Details for the file algorithmselector-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: algorithmselector-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/6.2.0-1018-azure

File hashes

Hashes for algorithmselector-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 204d06bf43752df4ae7715b17f6d0b9c7c39dfa14ae9401fe2964d2788435de9
MD5 a9f919f1fe2593a2e2b0c15f05ab2c42
BLAKE2b-256 63909d95ddfd5a43fbfe04d41345f2aee6ca05ea56379e5e78fd7b1488872df0

See more details on using hashes here.

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