Skip to content

Latest commit

 

History

History
4082 lines (4076 loc) · 160 KB

README.md

File metadata and controls

4082 lines (4076 loc) · 160 KB

🧮 Algorithms and Data Structures

This repository provides several classic algorithms and data structures in Computer Science, as well as some extra problems that are frequently encountered in programming challenges.

In order to achieve greater coverage and encourage more people to contribute to the project, the algorithms are available in the following languages: C, C++, Java, Python, Go, Ruby, Javascript, Swift, Rust, Scala and Kotlin.

Algorithms
Dijkstra's Algorithm
Floyd–Warshall Algorithm
Binary Search
Graph Search
Linear Search (Iterative)
Linear Search (Recursive)
Linear Search (Sentinel)
Interpolation Search
Travelling Salesman
Hamiltonian Cycle
Connected Components
Exponentiation (Iterative)
Exponentiation (Recursive)
Factorial (Iterative)
Factorial (Recursive)
Fibonacci (Iterative)
Fibonacci (Recursive)
Fibonacci (Memoization)
Max (Recursive)
Min and Max (Iterative)
Min and Max (Recursive)
Min and Max (D&C)
Knight's Tour
Tower of Hanoi
Genetic Algorithm
Huffman's Algorithm
LZ77 Algorithm
Data Structures
Binary Tree
Binary Search Tree
Double-ended Queue
Queue
Dynamic Queue
Graph
Circular Linked List
Singly Linked List
Doubly Linked List
Unordered Linked List
Sorted Linked List
Skip List
Stack
Dynamic Stack
Ring Buffer
Hash Table
Sorting Algorithms
Bogosort
Bubble Sort
Bucket Sort
Cocktail Sort
Comb Sort
Counting Sort
Gnome Sort
Heapsort
Insertion Sort
Merge Sort
Quicksort
Radix Sort
Selection Sort
Shell Sort
Timsort
Extra
Queue using Stacks
Two-Sum Problem
Palindrome
Isogram
Leibniz Formula for Pi
Maze-Solving Algorithm
Rotten Oranges
Find Distinct Subsets

🍻 Contributing

Feel free to contribute to the project, all contributions are welcome. 😁

If you have questions about how to contribute, take a look at the CONTRIBUTING file.