{"id":19878852,"url":"https://github.com/jakubkorytko/algorithms-library","last_synced_at":"2026-05-12T11:36:42.846Z","repository":{"id":150993078,"uuid":"620535157","full_name":"JakubKorytko/algorithms-library","owner":"JakubKorytko","description":"A versatile project with a comprehensive collection of basic algorithms designed for easy customization","archived":false,"fork":false,"pushed_at":"2023-11-24T17:07:34.000Z","size":63,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T17:49:14.176Z","etag":null,"topics":["algorithms-library","dotnet","mit-license","open-source","visual-studio"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JakubKorytko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-28T21:55:57.000Z","updated_at":"2023-11-24T17:09:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4eb45f3-952c-4da5-be82-bd775a21e4d4","html_url":"https://github.com/JakubKorytko/algorithms-library","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakubKorytko%2Falgorithms-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakubKorytko%2Falgorithms-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakubKorytko%2Falgorithms-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakubKorytko%2Falgorithms-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JakubKorytko","download_url":"https://codeload.github.com/JakubKorytko/algorithms-library/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241309093,"owners_count":19941722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms-library","dotnet","mit-license","open-source","visual-studio"],"created_at":"2024-11-12T17:06:52.938Z","updated_at":"2026-05-12T11:36:37.825Z","avatar_url":"https://github.com/JakubKorytko.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Algorithms Library\n\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](LICENSE)\n![Visual Studio](https://img.shields.io/badge/Visual%20Studio-5C2D91.svg?style=for-the-badge\u0026logo=visual-studio\u0026logoColor=white)\n![.Net](https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge\u0026logo=.net\u0026logoColor=white)\n\n[![Open Source Love svg1](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\n[![Run Super-Linter](https://github.com/JakubKorytko/algorithms-library/actions/workflows/super-linter.yml/badge.svg)](https://github.com/JakubKorytko/algorithms-library/actions/workflows/super-linter.yml)\n\n## Table of Contents\n\n- [Algorithms Library](#algorithms-library)\n  - [Table of Contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [Menu](#menu)\n      - [Available commands](#available-commands)\n    - [Available algorithms](#available-algorithms)\n  - [Extending the library](#extending-the-library)\n    - [Adding new algorithms](#adding-new-algorithms)\n    - [Adding shared methods](#adding-shared-methods)\n  - [Contributing](#contributing)\n  - [Contact](#contact)\n  - [License](#license)\n\n## Introduction\n\nThe Algorithms Library is a versatile C# project\nthat provides a comprehensive collection of basic algorithms\nimplemented within the .NET 4.7.3 framework.\nThis library is designed with extensibility in mind,\nallowing users to easily add their own algorithms.\n\nIt's a great tool for learning algorithms and their implementation.\nIt also allows you to quickly test your own algorithms or create a collection of your favorite / custom algorithms.\n\nIt is built using the Visual Studio 2022.\n\n**This project was created targeting Windows. It has not been tested on other operating systems.**\n\n## Prerequisites\n\nBefore using the Algorithms Library, make sure that you have the following prerequisites installed on your system:\n\n- [Visual Studio 2022 (version 17.6.3 or later)](https://visualstudio.microsoft.com/vs/)\n  - \".NET desktop development\" workload installed.\n\n## Installation\n\n1. Clone this repository to your local machine using Git,\nor download the ZIP file and extract it to a directory of your choice:\n\n    ```bash\n    git clone https://github.com/JakubKorytko/algorithms-library.git\n    ```\n\n1. Change to the project directory:\n\n    ```bash\n    cd algorithms-library\n    ```\n\n1. In Visual Studio, open the `AlgorithmsLibrary.sln' solution file.\n\n1. Build or run the project in Visual Studio:\n\n    - **Run the project** in the Visual Studio\n      - `F5` /  `Ctrl + F5` by default\n      - or `Debug` -\u003e `Start Debugging` / `Start Without Debugging` on the toolbar\n\n    - or **Build project** executable\n      - `Ctrl + B` / `Ctrl + Shift + B` by default\n      - or `Build` -\u003e `Build Solution` / `Build AlgorithmsLibrary` on the toolbar\n\n    The executable will be available in the `build` directory in both cases.\n\n## Usage\n\n### Menu\n\nThe application has an intuitive text-based menu.\nWhen launched, the menu is displayed and the application waits for your input **(case-insensitive)**.\n\n#### Available commands\n\n- `\u003calgorithm_name\u003e` - execute the selected [algorithm](#available-algorithms)\n- `menu` - show the menu options\n- `exit`\n\n### Available algorithms\n\n- [Eratosthenes](./Components/Algorithms/Eratosthenes.cs) (Sieve of Eratosthenes)\n- [SuperAlgorithm](./Components/Algorithms/Algorithm.example.cs) (an example algorithm without input)\n- [Factorial](./Components/Algorithms/Factorial.cs) (Factorial calculator)\n- [Fibonacci](./Components/Algorithms/Fibonacci.cs) (Fibonacci sequence calculator)\n- [Hanoi](./Components/Algorithms/Hanoi.cs) (Hanoi tower solver)\n- [Triangular](./Components/Algorithms/Triangular.cs) (Triangular numbers calculator)\n\n## Extending the library\n\n### Adding new algorithms\n\nAdd a new class to the [Components/Algorithms](./Components/Algorithms/) folder.\nMake sure that the class is derived from the [Algorithm](./Components/AlgorithmsCore/BaseClass.cs) class\n(`AlgorithmsLibrary.AlgorithmsCore` namespace).\n\nAlso, the class should:\n\n1. Override the public void method named `Display`\nwhich is used to execute the algorithm\n(you must handle the output within this function)  \n\n   - **IF NOT**: The application displays\n    `No display method defined for this algorithm`\n    when you try to select it from the menu.\n\n1. Override the public virtual string `Description`:\n\n    ```c#\n    public override string Description { get { return \"...\"; } }\n    ```\n\n   - **IF NOT**: The application displays\n    `No description provided for this algorithm`\n    next to it in the printed menu.\n\n1. Have a unique class name that is displayed in the menu.\n\nFor example, see [Components/Algorithms/Algorithm.example.cs](./Components/Algorithms/Algorithm.example.cs)\n\n### Adding shared methods\n\nIf you need to add a method that is available to all algorithms,\nadd a new method to the [Components/AlgorithmsCore/BaseClassTools.cs](./Components/AlgorithmsCore/BaseClassTools.cs) file.\n\nThe file contains a sample method that you can check to create your own.\n\n*(Also, there are already some methods there to parse integers from the input,\ncheck them out if you are interested)*.\n\n## Contributing\n\nIf you find issues or have suggestions for improvements,\nfeel free to open an issue or submit a pull request.\nContributions are welcome!\n\n## Contact\n\nIf you have any questions, feel free to contact me at \u003cjakub@korytko.me\u003e.\n\n## License\n\nThis project is released under the MIT License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakubkorytko%2Falgorithms-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakubkorytko%2Falgorithms-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakubkorytko%2Falgorithms-library/lists"}