# arnauddri/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/arnauddri-algorithms).**

1,853 stars · 264 forks · Go · NOASSERTION

## Links

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

## Description

This repository provides a collection of fundamental computer science algorithms and data structures implemented in Go. It serves as a technical reference and educational resource, offering reusable modules for common computational tasks including data organization, graph analysis, and numerical operations.

The library distinguishes itself through the application of idiomatic Go patterns, utilizing generics for type abstraction and interface-driven polymorphism to ensure compile-time type safety. It emphasizes algorithmic efficiency by employing in-place memory mutation to reduce allocations and divide-and-conquer strategies to optimize large-scale mathematical and matrix computations.

The implementation covers a broad range of standard structures and techniques, including trees, heaps, queues, and linked lists, alongside classic methods for searching, sorting, and pathfinding. These utilities support tasks such as prime number identification, shortest path calculation, and complex integer arithmetic, providing a foundation for building performant software applications.

## Tags

### Education & Learning Resources

- [Algorithmic Reference Implementations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/general-collections-and-study/algorithmic-reference-implementations.md) — Serves as a reference implementation of classic algorithmic patterns and data structures for educational and technical use.
- [Divide And Conquer Algorithms](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/algorithmic-paradigms/divide-and-conquer-algorithms.md) — Employs divide-and-conquer recursion to optimize large-scale mathematical and matrix computations.
- [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 comprehensive collection of fundamental algorithms and data structures implemented in Go.
- [Graph Traversal Algorithms](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/data-ordering-and-retrieval/graph-traversal-algorithms.md) — Explores graph nodes and edges using standard search algorithms to identify paths or visit reachable elements. ([source](https://github.com/arnauddri/algorithms/tree/master/data-structures/graph))
- [Algorithm Implementations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/general-collections-and-study/algorithm-implementations.md) — Provides a collection of classic algorithmic implementations for common programming challenges. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms))
- [Graph Algorithm Routines](https://awesome-repositories.com/f/education-learning-resources/graph-theory-algorithms/graph-algorithm-routines.md) — Offers reusable routines for analyzing network structures and determining node connectivity. ([source](https://github.com/arnauddri/algorithms#readme))

### Scientific & Mathematical Computing

- [Data Structure Implementations](https://awesome-repositories.com/f/scientific-mathematical-computing/data-structure-implementations.md) — Implements fundamental memory-based data structures including trees, heaps, queues, and linked lists. ([source](https://github.com/arnauddri/algorithms#readme))
- [Divide-and-Conquer Matrix Multiplication](https://awesome-repositories.com/f/scientific-mathematical-computing/generalized-matrix-multiplications/divide-and-conquer-matrix-multiplication.md) — Optimizes large matrix multiplication using recursive divide-and-conquer partitioning. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/strassen))
- [Graph Analysis Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/graph-analysis-algorithms.md) — Implements core graph theory algorithms including pathfinding and traversal for analyzing network connectivity.
- [GCD and LCM Calculators](https://awesome-repositories.com/f/scientific-mathematical-computing/greatest-common-divisor-algorithms/gcd-and-lcm-calculators.md) — Calculates the greatest common divisor of two nonnegative integers using efficient binary arithmetic. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/stein))
- [Mathematical Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/mathematical-algorithms.md) — Provides a suite of numerical algorithms for solving complex quantitative problems. ([source](https://github.com/arnauddri/algorithms#readme))
- [Matrix Numerical Computations](https://awesome-repositories.com/f/scientific-mathematical-computing/matrix-numerical-computations.md) — Provides optimized algorithms for matrix numerical computations and complex integer arithmetic.
- [Shortest Path Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/algorithms/graph-processing/shortest-path-algorithms.md) — Calculates the most efficient route between nodes in weighted or unweighted graphs using established pathfinding techniques. ([source](https://github.com/arnauddri/algorithms/tree/master/data-structures/graph))
- [Karatsuba Multiplication](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/multiplication-algorithms/karatsuba-multiplication.md) — Performs large integer multiplication using divide-and-conquer techniques to reduce computational complexity. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/karatsuba))
- [Inversion Counting Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/multiplication-algorithms/number-theory-algorithms/inversion-counting-algorithms.md) — Calculates the degree of disorder in integer arrays by counting inversion pairs. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/permutations-count))
- [Prime Generation Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/multiplication-algorithms/number-theory-algorithms/prime-generation-algorithms.md) — Identifies prime numbers up to a specified limit using efficient iterative marking techniques. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/eratosthenes-sieve))
- [Sorting and Searching Implementations](https://awesome-repositories.com/f/scientific-mathematical-computing/sorting-and-searching-implementations.md) — Offers a suite of standard sorting and searching implementations for effective data organization and retrieval.

### Software Engineering & Architecture

- [Generic Data Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/abstract-data-types/generic-data-abstractions.md) — Utilizes generics and interfaces to provide type-safe, reusable data structures and algorithms.
- [Collection Shuffling](https://awesome-repositories.com/f/software-engineering-architecture/in-place-array-manipulations/collection-shuffling.md) — Provides efficient in-place randomization of collection elements to ensure unbiased distribution. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/fisher-yates))
- [Interface-Based Polymorphism](https://awesome-repositories.com/f/software-engineering-architecture/interface-based-polymorphism.md) — Utilizes interface-based polymorphism to provide interchangeable algorithm implementations while maintaining strict compile-time type safety.
- [Linked Data Structures](https://awesome-repositories.com/f/software-engineering-architecture/linked-data-structures.md) — Organizes memory using pointer-based linking to construct dynamic data structures like linked lists and trees.

### Data & Databases

- [Collection Search Utilities](https://awesome-repositories.com/f/data-databases/collection-utilities/collection-search-utilities.md) — Implements efficient search strategies to locate items within datasets while minimizing lookup time. ([source](https://github.com/arnauddri/algorithms#readme))
- [In-Place Data Mutators](https://awesome-repositories.com/f/data-databases/in-place-data-mutators.md) — Implements in-place memory mutation techniques to optimize performance and reduce allocations during sorting and partitioning operations.
- [Collection Sorting](https://awesome-repositories.com/f/data-databases/query-sorting/query-filters/collection-based-filtering/collection-sorting.md) — Provides established sorting techniques to organize elements into specific orders for improved retrieval efficiency. ([source](https://github.com/arnauddri/algorithms#readme))
- [Top-K Element Identification](https://awesome-repositories.com/f/data-databases/top-k-element-identification.md) — Identifies the k-th smallest element in a sequence using efficient in-place partitioning. ([source](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/RSelect))

### Programming Languages & Runtimes

- [Go Idioms & Patterns](https://awesome-repositories.com/f/programming-languages-runtimes/go-idioms-patterns.md) — Demonstrates idiomatic Go programming patterns and high-performance implementation techniques for standard computational tasks.
- [Go Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/go-libraries.md) — Ships a library of reusable Go modules for common mathematical, graph, and data organization tasks.
