Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/gazolla/kotlin-algorithm

Algorithms and data structures in kotlin
https://github.com/gazolla/kotlin-algorithm

algorithms kotlin kotlin-language

Last synced: 4 days ago
JSON representation

Algorithms and data structures in kotlin

Awesome Lists containing this project

README

        

# Welcome to Kotlin Algorithms

Here you'll find implementations of popular algorithms and data structures in [Kotlin programming language](https://kotlinlang.org/).

This is a work in progress. More algorithms will be added soon. :-)

**Suggestions and contributions are welcome!**

## The algorithms

### Searching

- [Linear Search](LinearSearch/)
- [Binary Search](BinarySearch/)
- [Count Occurrences]
- [Select Minimum / Maximum]
- [k-th Largest Element]
- [Selection Sampling]
- [Union-Find]
- [Depth-First Search](DepthFirstSearch/)

### String Search

- [Brute-Force String Search]
- [Boyer-Moore]
- Rabin-Karp
- [Longest Common Subsequence]

### Sorting

Basic sorts:

- [Insertion Sort](InsertionSort/)
- [Selection Sort](SelectionSort/)
- [Shell Sort](ShellSort/)

Fast sorts:

- [Quicksort](QuickSort/)
- [Merge Sort](MergeSort/)
- [Heap Sort]

Special-purpose sorts:

- Bucket Sort
- Counting Sort
- Radix Sort
- [Topological Sort]

### Compression

- [Run-Length Encoding (RLE)](Compression/)
- [Huffman Coding]

### Miscellaneous

- [Shuffle](Shuffle/) Randomly rearranges the contents of an array.

### Machine learning

- [k-Means Clustering]
- k-Nearest Neighbors
- Linear Regression
- Logistic Regression
- Neural Networks
- PageRank

## Data structures

### Variations on arrays

- [Array2D]
- [Bit Set]
- [Fixed Size Array]
- [Ordered Array](Ordered Array/)

### Queues

- [Stack](Stack/)
- [Queue](Queue/)
- [Deque](Deque/)
- [Priority Queue]
- [Bounded Priority Queue]
- [Ring Buffer]

### Lists

- [Linked List](LinkedList/)
- Skip List

### Trees

- [Tree](Tree/)
- [Binary Tree]
- [Binary Search Tree (BST)]
- [AVL Tree]
- Red-Black Tree
- Splay Tree
- Threaded Binary Tree
- [Segment Tree]
- kd-Tree
- [Heap]
- Fibonacci Heap
- Trie
- [B-Tree]

### Hashing

- [Hash Table]
- Hash Functions

### Sets

- [Bloom Filter]
- [Hash Set]
- Multiset
- [Ordered Set](OrderedSet/)

### Graphs

- [Graph]
- [Breadth-First Search (BFS)]
- [Depth-First Search (DFS)]
- [Shortest Path]
- [Minimum Spanning Tree]
- All Paths

## License

All content is licensed under the terms of the MIT open source license.

### Contributors
* [Andy Bowes](https://github.com/AndyBowes)
* [Niccolò Passolunghi](https://github.com/nicopasso)
* [Vansh Gandhi](https://github.com/vanshg)
* [Szabolcs Besenyei](https://github.com/besza)
* [Markus Kramer](https://github.com/MarkusKramer)
* [Luís Soares](https://github.com/lsoares)

### Contact

* Sebastian Gazolla Jr
* [@gazollajr](http://twitter.com/gazollajr)
* [http://gazapps.com](http://gazapps.com)
* [http://about.me/gazolla](http://about.me/gazolla)