Data Structures and Algorithms
Clean example implementations of data structures and algorithms written in different languages.
List of implementations
Algorithms list
Contribution
-
Contributions are always welcome. Language doesn't matter. Just make sure you're implementing an algorithm.
-
PRs are welcome. To begin developing, follow the structure:
algorithm_name/language-name/file_name.extension
e.g
bubble_sort/python/bubble_sort.py
-
If there is an implementation of the same algorithm in your language, add your username in front of the file name. E.g., if the already existing algorithm is binary_sort and your user name is my_name, just name the new file as 'my_name_binary_sort'.
-
Please include a description for the algorithm that you are implementing. It doesn't matter if it's copied from somewhere as long as it helps people that are learning new algorithm.
-
Graphical examples would be very helpful too.
-
Don't forget to include tests.
-
Don't remove previous implementations of algorithms. Just add a new file with your own implementation.
-
Beautify and cleanup your code for easier reading.
Resources
Curated list of resources dealing with algorithms.
-
Books
- Introduction to algorithms
- Algorithms and Data structures
- Data Structures and Algorithms
- The Algorithm Design Manual
- Algorithm Design
- Grokking Algorithms
- Algorithms
- Competitive Programming 3
- 10 Best Data Structures and Algorithms Books
-
Sites
- Algorithms and Data Structures -Emaxx
- All Good Tutorials on Codeforces
- DS & Algo + Maths + C++
- Data Structures and Algorithms
- Algorithms - Tutorials point
- Algorithms - Princetone edu
- Data structures and algorithms - Hackr
- Data science - Topcoder
- Fundamentals Of Algorithms- Geeks For Geeks
- Visual Algorithm - visualising data structures and algorithms through animation
- Java Algorithms - Geeks For Geeks
- Data Structure and Algorithms Visualization
- Best Data structures and algorithms Tutorials - Coursesity
-
Online classes (Free)
- Coursera
- Introduction to algorithms Part 1
- Algorithms specialization 4 courses
- Khan Academy
- Udacity
- Computability, Complexity & Algorithms
- Intro to algorithms
- EdX
- Algorithms
- Algorithms and data structures
- Algorithm Design and Analysis
- Graph Algorithms
- Data Structures
- Algorithmic Design and Techniques
- String Processing and Pattern Matching Algorithms
- Graph Algorithms in Genome Sequencing
- Algorithms and Data Structures Capstone
- Stony Brook University
- Skiena's algorithms lectures
- Scaler
- Data Structure and algorithm
-
Online classes (paid)
- Udemy
- The Coding Interview Bootcamp: Algorithms + Data Structures
- JavaScript Algorithms and Data Structures Masterclass
- Learning Algorithms in JavaScript from Scratch
-
Coding Practice Sites
- HackerRank
- HackerEarth
- SPOJ
- TopCoder
- CodeChef
- Codeforces
- Project Euler
- LeetCode
- CodingGame
- CodeWars
- InterviewBit
- TechGig
- Careercup
- AtCoder
- Codejam
- Exercism
- freeCodeCamp
- CodingBat
- CodeGround
- CoderByte
- Geeks For Geeks
- Kattis
- Codility
- Edabit
- CodingNinjas
- PrepBytes
License
To the extent possible under law, Zoran Pandovski has waived all copyright and related or neighboring rights to this work.