An open API service indexing awesome lists of open source software.

https://github.com/arnauddri/algorithms

Algorithms & Data Structures in Go
https://github.com/arnauddri/algorithms

Last synced: 6 months ago
JSON representation

Algorithms & Data Structures in Go

Awesome Lists containing this project

README

          

# Algorithms [![Build Status](https://travis-ci.org/arnauddri/algorithms.svg?branch=master)](https://travis-ci.org/arnauddri/algorithms)

Classic algorithms and data structures implemented in Go. Not for production use, it is mostly an attempt to get comfortable both with Go and key CS concepts.

### Contents

#### Data Structures

* [Binary Search Tree](https://github.com/arnauddri/algorithms/tree/master/data-structures/binary-tree) [(wiki)](http://en.wikipedia.org/wiki/Binary_tree)
* [Graph](https://github.com/arnauddri/algorithms/tree/master/data-structures/graph) [(wiki)](http://en.wikipedia.org/wiki/Graph_%28abstract_data_type)
* [Hash Tables](https://github.com/arnauddri/algorithms/tree/master/data-structures/hash-tables) [(wiki)](http://en.wikipedia.org/wiki/Hash_table)
* [Linked List](https://github.com/arnauddri/algorithms/tree/master/data-structures/linked-list) [(wiki)](http://en.wikipedia.org/wiki/Linked_list)
* [Matrix](https://github.com/arnauddri/algorithms/tree/master/data-structures/matrix) [(wiki)](http://en.wikipedia.org/wiki/Matrix_(mathematics))
* [Min/Max Heap](https://github.com/arnauddri/algorithms/tree/master/data-structures/heap) [(wiki)](http://en.wikipedia.org/wiki/Heap_%28data_structure%29)
* [Priority Queue](https://github.com/arnauddri/algorithms/tree/master/data-structures/priority-queue) [(wiki)](http://en.wikipedia.org/wiki/Priority_queue)
* [Queue](https://github.com/arnauddri/algorithms/tree/master/data-structures/queue) [(wiki)](http://en.wikipedia.org/wiki/Queue_%28abstract_data_type%29)
* [Stack](https://github.com/arnauddri/algorithms/tree/master/data-structures/stack) [(wiki)](http://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29)

#### Graph algorithms

**Searching:**
* [Depth First Search](https://github.com/arnauddri/algorithms/tree/master/algorithms/graphs/dfs) [(wiki)](http://en.wikipedia.org/wiki/Depth-first_search)
* [Breadth First Search](https://github.com/arnauddri/algorithms/tree/master/algorithms/graphs/bfs) [(wiki)](http://en.wikipedia.org/wiki/Breadth-first_search)
* [Kosaraju's Algorithm (find all SCCs)](https://github.com/arnauddri/algorithms/tree/master/algorithms/graphs/kosaraju) [(wiki)](http://en.wikipedia.org/wiki/Kosaraju%27s_algorithm)

**Shortest path:**
* [Breadth First Search Shortest Path](https://github.com/arnauddri/algorithms/tree/master/algorithms/graphs/bfs-shortest-path) [(wiki)](http://en.wikipedia.org/wiki/Breadth-first_search)
* [Dijkstra](https://github.com/arnauddri/algorithms/tree/master/algorithms/graphs/dijkstra) [(wiki)](http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)

**Sorting:**
* [Topological Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/graphs/topological-sort) [(wiki)](http://en.wikipedia.org/wiki/Topological_sorting)

#### Maths algorithms

* [Binary GCD algorithm](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/stein) [(wiki)](https://en.wikipedia.org/wiki/Binary_GCD_algorithm)
* [Closest pairs](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/closest-pair) [(wiki)](http://en.wikipedia.org/wiki/Closest_pair_of_points_problem)
* [FastPower](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/fast-power) [(wiki)](http://en.wikipedia.org/wiki/Exponentiation_by_squaring)
* [Fibonacci](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/fibonacci) [(wiki)](http://en.wikipedia.org/wiki/Fibonacci_number)
* [Fisher-Yates Shuffle](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/fisher-yates) [(wiki)](http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)
* [Erastothenes Sieve](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/eratosthenes-sieve) [(wiki)](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
* [Extented GCD algorithm](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/euclide) [(wiki)](http://en.wikipedia.org/wiki/Extended_Euclidean_algorithm)
* [Karatsuba's Multiplication](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/karatsuba) [(wiki)](http://en.wikipedia.org/wiki/Karatsuba_algorithm)
* [Newton's Square Root](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/newton-sqrt) [(wiki)](http://en.wikipedia.org/wiki/Newton%27s_method)
* [Permutations Count](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/permutations-count)
* [Strassen's matrix multiplication](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/strassen) [(wiki)](http://en.wikipedia.org/wiki/Strassen_algorithm)
* [Randomized Selection](https://github.com/arnauddri/algorithms/tree/master/algorithms/maths/RSelect)

#### Sorting algorithms

* [Bubble Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/bubble-sort) [(wiki)](http://en.wikipedia.org/wiki/Bubble_sort)
* [Heap Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/heap-sort) [(wiki)](http://en.wikipedia.org/wiki/Heapsort)
* [Quick Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/quick-sort) [(wiki)](http://en.wikipedia.org/wiki/Quicksort)
* [Merge Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/merge-sort) [(wiki)](http://en.wikipedia.org/wiki/Merge_sort)
* [Insertion Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/insertion-sort) [(wiki)](http://en.wikipedia.org/wiki/Insertion_sort)
* [Shell Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/shell-sort) [(wiki)](http://en.wikipedia.org/wiki/Shellsort)
* [Selection Sort](https://github.com/arnauddri/algorithms/tree/master/algorithms/sorting/selection-sort) [(wiki)](http://en.wikipedia.org/wiki/Selection_sort)

#### Searching algorithms

* [Binary Search](https://github.com/arnauddri/algorithms/tree/master/algorithms/searching/binary-search) [(wiki)](http://en.wikipedia.org/wiki/Binary_search_algorithm)