Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/okmttdhr/haskell-algorithms

Algorithms and data structures implemented in Haskell
https://github.com/okmttdhr/haskell-algorithms

algorithm data-structures functional-programming haskell

Last synced: 2 months ago
JSON representation

Algorithms and data structures implemented in Haskell

Awesome Lists containing this project

README

        

# Haskell Algorithms

This repository contains Haskell based examples of algorithms and data structures. (Inspired by [JavaScript Algorithms](https://github.com/trekhleb/javascript-algorithms)).

## Table of Contents

- [Haskell Algorithms](#haskell-algorithms)
- [Table of Contents](#table-of-contents)
- [Data Structures](#data-structures)
- [Math](#math)
- [Sets](#sets)
- [Strings](#strings)
- [Searches](#searches)
- [Sorting](#sorting)
- [Linked Lists](#linked-lists)
- [Trees](#trees)
- [Graphs](#graphs)
- [Cryptography](#cryptography)
- [Machine Learning](#machine-learning)
- [Brute Force](#brute-force)
- [Greedy](#greedy)
- [Divide and Conquer](#divide-and-conquer)
- [Dynamic Programming](#dynamic-programming)
- [Backtracking](#backtracking)
- [Uncategorized](#uncategorized)

## Data Structures

- [Linked List](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/data-structures/linked-list.hs)
- [Doubly Linked List](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/data-structures/doubly-linked-list.hs)
- [Queue](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/data-structures/queue.hs)
- [Stack](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/data-structures/stack.hs)
- [Hash Table](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/data-structures/hash-table.hs)
- [Heap](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/data-structures/heap.hs)
- Priority Queue
- Trie
- Tree
- Binary Search Tree
- AVL Tree
- Red-Black Tree
- Segment Tree
- Fenwick Tree
- Graph
- Disjoint Set
- Bloom Filter

## Math

- Bit Manipulation
- Factorial
- [Fibonacci Number](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/math/fibonacci-number.hs)
- Primality Test
- Euclidean Algorithm
- Least Common Multiple
- Sieve of Eratosthenes
- Is Power of Two
- Pascal's Triangle
- Complex Number
- Radian & Degree
- Fast Powering
- Integer Partition
- Square Root
- Liu Hui π Algorithm
- Discrete Fourier Transform

## Sets

- Cartesian Product
- Fisher–Yates Shuffle
- Power Set
- [Permutations](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sets/permutations.hs)
- Combinations
- Longest Common Subsequence
- Longest Increasing Subsequence
- Shortest Common Supersequence
- Knapsack Problem
- [Maximum Subarray](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sets/maximum-subarray.hs)
- Combination Sum

## Strings

- Hamming Distance
- Levenshtein Distance
- Knuth–Morris–Pratt Algorithm
- Z Algorithm
- Rabin Karp Algorithm
- Longest Common Substring
- Regular Expression Matching

## Searches

- [Linear Search](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/searches/linear-search.hs)
- [Binary Search](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/searches/binary-search.hs)
- Jump Search
- Interpolation Search

## Sorting

- [Bubble Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/bubble-sort.hs)
- [Selection Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/selection-sort.hs)
- [Insertion Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/insertion-sort.hs)
- [Heap Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/heap-sort.hs)
- [Merge Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/merge-sort.hs)
- [Quick Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/quick-sort.hs)
- Shell Sort
- Counting Sort
- Radix Sort

## Linked Lists

- Straight Traversal
- Reverse Traversal

## Trees

- Depth-First Search
- Breadth-First Search

## Graphs

- Depth-First Search
- Breadth-First Search
- Kruskal’s Algorithm
- Dijkstra Algorithm
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Detect Cycle
- Prim’s Algorithm
- Topological Sorting
- Articulation Points
- Bridges
- Eulerian Path and Eulerian Circuit
- Hamiltonian Cycle
- Strongly Connected Components
- Travelling Salesman Problem

## Cryptography

- Polynomial Hash

## Machine Learning

- NanoNeuron

## Brute Force

- [Linear Search](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/searches/linear-search.hs)
- Rain Terraces
- Recursive Staircase
- Maximum Subarray
- Travelling Salesman Problem
- Discrete Fourier Transform

## Greedy

- Jump Game
- Unbound Knapsack Problem
- Dijkstra Algorithm
- Prim’s Algorithm
- Kruskal’s Algorithm

## Divide and Conquer

- [Binary Search](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/searches/binary-search.hs)
- Tower of Hanoi
- Pascal's Triangle
- Euclidean Algorithm
- [Merge Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/merge-sort.hs)
- [Quick Sort](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sorting/quick-sort.hs)
- Tree Depth-First Search
- Graph Depth-First Search
- Jump Game
- Fast Powering
- [Permutations](https://github.com/okmttdhr/haskell-algorithms/blob/master/src/sets/permutations.hs)
- Combinations

## Dynamic Programming

- Fibonacci Number
- Jump Game
- Unique Paths
- Rain Terraces
- Recursive Staircase
- Levenshtein Distance
- Longest Common Subsequence
- Longest Common Substring
- Longest Increasing Subsequence
- Shortest Common Supersequence
- 0/1 Knapsack Problem
- Integer Partition
- Maximum Subarray
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Regular Expression Matching

## Backtracking

- Jump Game
- Unique Paths
- Power Set
- Hamiltonian Cycle
- N-Queens Problem
- Knight's Tour
- Combination Sum

## Uncategorized

- Tower of Hanoi
- Square Matrix Rotation
- Jump Game
- Unique Paths
- Rain Terraces
- Recursive Staircase
- N-Queens Problem
- Knight's Tour