# williamfiset/Algorithms

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/williamfiset-algorithms).**

18,500 stars · 4,523 forks · Java · mit

## Links

- GitHub: https://github.com/williamfiset/Algorithms
- awesome-repositories: https://awesome-repositories.com/repository/williamfiset-algorithms.md

## Topics

`adjacency` `adjacency-matrix` `algorithm` `algorithms` `dijkstra` `dynamic-programming` `edmonds-karp-algorithm` `geometry` `graph-theory` `linear-algebra` `mathematics` `matrix-multiplication` `maxflow` `nlog` `search-algorithm` `search-algorithms` `sorting-algorithms` `strings` `traveling-salesman` `tree-algorithms`

## Description

This repository provides a collection of verified implementations for fundamental data structures and computational algorithms. It serves as both a practical toolkit for integrating standard procedures into software applications and a reference for understanding core computer science concepts.

The library covers a wide range of operations, including sorting, searching, graph traversal, and geometric analysis. Each implementation is designed to be modular and reusable, utilizing generic type parametrization to decouple logic from specific data types while maintaining type safety.

The project includes implementations for common data structures such as lists, trees, and graphs to facilitate efficient information storage and retrieval. It also provides tools for mathematical problem solving and spatial analysis, with documentation that includes algorithmic complexity analysis to evaluate the time and space requirements of each procedure.

## Tags

### Education & Learning Resources

- [Algorithms and Data Structures](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/computer-science-concepts/algorithms-and-data-structures.md) — Provides a verified collection of fundamental computational procedures, data structures, and mathematical algorithms.
- [Computer Science Education](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education.md) — Functions as a comprehensive educational reference for applying standard algorithmic patterns and data structures.
- [Recursive Problem Solving](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/algorithmic-problem-solving/recursive-problem-solving.md) — Uses recursive decomposition to simplify complex tree and graph traversal operations.

### Software Engineering & Architecture

- [Algorithmic Problem Solving](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving.md) — Acts as a toolkit of optimized routines for sorting, searching, and graph traversal. ([source](https://github.com/williamfiset/Algorithms/tree/master/src/main/java/com/williamfiset/algorithms/))
- [Data Structures](https://awesome-repositories.com/f/software-engineering-architecture/data-structures.md) — Implements fundamental data structures like lists, trees, and graphs for efficient information storage and retrieval. ([source](https://github.com/williamfiset/Algorithms/tree/master/src/main/java/com/williamfiset/algorithms/))
- [Sorting Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/sorting-algorithms.md) — Provides a library of verified sorting, searching, and traversal algorithms for immediate use. ([source](https://github.com/williamfiset/Algorithms/tree/master/src/main/java/com/williamfiset/algorithms/))
- [Complexity Analysis](https://awesome-repositories.com/f/software-engineering-architecture/complexity-analysis.md) — Includes documentation and analysis of time and space complexity for all implemented procedures.
- [Generic Type Definitions](https://awesome-repositories.com/f/software-engineering-architecture/generic-type-definitions.md) — Utilizes generic type parametrization to ensure type safety and decoupling across all algorithmic implementations.
- [Modular Software Design](https://awesome-repositories.com/f/software-engineering-architecture/modular-software-design.md) — Organizes algorithms into independent, modular units for easy integration into larger software systems.
- [Software Engineering Foundations](https://awesome-repositories.com/f/software-engineering-architecture/software-engineering-foundations.md) — Builds robust software foundations by providing optimized, standard algorithmic patterns.
- [Abstract Data Types](https://awesome-repositories.com/f/software-engineering-architecture/abstract-data-types.md) — Provides clean interfaces for complex data structures, hiding internal memory management and pointer logic.

### Data & Databases

- [Data Structure Implementations](https://awesome-repositories.com/f/data-databases/data-structure-implementations.md) — Provides verified implementations of fundamental data structures for efficient data organization.

### Scientific & Mathematical Computing

- [Computational Geometry](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/computational-geometry.md) — Includes geometric and algebraic algorithms for performing spatial analysis and numerical calculations.
