A collection of various algorithms and data structures
Project description
Algorithm Selector
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:
- Fork the repository and create your branch from
main
. - Write your algorithm or improvement.
- Ensure your code passes all existing tests and add new tests if necessary.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd36adc99675d244aa9a65884370941055587974349adc35b67a1949b0dd14be |
|
MD5 | 3dbc4cde4a33fb1d40c54cb4e896d273 |
|
BLAKE2b-256 | 1d773a49a8a54527f423e4ec55378399f7b5f527bc1c5bd8926a85d9c5b80e6d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 204d06bf43752df4ae7715b17f6d0b9c7c39dfa14ae9401fe2964d2788435de9 |
|
MD5 | a9f919f1fe2593a2e2b0c15f05ab2c42 |
|
BLAKE2b-256 | 63909d95ddfd5a43fbfe04d41345f2aee6ca05ea56379e5e78fd7b1488872df0 |