scrapbook
  • "Unorganized" Notes
  • The Best Public Datasets for Machine Learning and Data Science
  • Practice Coding
  • plaid-API project
  • Biotech
    • Machine Learning vs. Deep Learning
  • Machine Learning for Computer Graphics
  • Books (on GitHub)
  • Ideas/Thoughts
  • Ziva for feature animation: Stylized simulation and machine learning-ready workflows
  • Tools
  • 🪶math
    • Papers
    • Math for ML (coursera)
      • Linear Algebra
        • Wk1
        • Wk2
        • Wk3
        • Wk4
        • Wk5
      • Multivariate Calculus
    • Improving your Algorithms & Data Structure Skills
    • Algorithms
    • Algorithms (MIT)
      • Lecture 1: Algorithmic Thinking, Peak Finding
    • Algorithms (khan academy)
      • Binary Search
      • Asymptotic notation
      • Sorting
      • Insertion sort
      • Recursion
      • Solve Hanoi recursively
      • Merge Sort
      • Representing graphs
      • The breadth-first search algorithm
      • Breadth First Search in JavaScript
      • Breadth-first vs Depth-first Tree Traversal in Javascript
    • Algorithms (udacity)
      • Social Network
    • Udacity
      • Linear Algebra Refresher /w Python
    • math-notes
      • functions
      • differential calculus
      • derivative
      • extras
      • Exponentials & logarithms
      • Trigonometry
    • Probability (MIT)
      • Unit 1
        • Probability Models and Axioms
        • Mathematical background: Sets; sequences, limits, and series; (un)countable sets.
    • Statistics and probability (khan academy)
      • Analyzing categorical data
      • Describing and comparing distributions
      • Outliers Definition
      • Mean Absolute Deviation (MAD)
      • Modeling data distribution
      • Exploring bivariate numerical data
      • Study Design
      • Probability
      • Counting, permutations, and combinations
      • Binomial variables
        • Binomial Distribution
        • Binomial mean and standard deviation formulas
        • Geometric random variable
      • Central Limit Theorem
      • Significance Tests (hypothesis testing)
    • Statistics (hackerrank)
      • Mean, Medium, Mode
      • Weighted Mean
      • Quartiles
      • Standard Deviation
      • Basic Probability
      • Conditional Probability
      • Permutations & Combinations
      • Binomial Distribution
      • Negative Binomial
      • Poisson Distribution
      • Normal Distribution
      • Central Limit Theorem
      • Important Concepts in Bayesian Statistics
  • 📽️PRODUCT
    • Product Strategy
    • Product Design
    • Product Development
    • Product Launch
  • 👨‍💻coding
    • of any interest
    • Maya API
      • Python API
    • Python
      • Understanding Class Inheritance in Python 3
      • 100+ Python challenging programming exercises
      • coding
      • Iterables vs. Iterators vs. Generators
      • Generator Expression
      • Stacks (LIFO) / Queues (FIFO)
      • What does -1 mean in numpy reshape?
      • Fold Left and Right in Python
      • Flatten a nested list of lists
      • Flatten a nested dictionary
      • Traverse A Tree
      • How to Implement Breadth-First Search
      • Breadth First Search
        • Level Order Tree Traversal
        • Breadth First Search or BFS for a Graph
        • BFS for Disconnected Graph
      • Trees and Tree Algorithms
      • Graph and its representations
      • Graph Data Structure Interview Questions
      • Graphs in Python
      • GitHub Repo's
    • Python in CG Production
    • GLSL/HLSL Shading programming
    • Deep Learning Specialization
      • Neural Networks and Deep Learning
      • Untitled
      • Untitled
      • Untitled
    • TensorFlow for AI, ML, and DL
      • Google ML Crash Course
      • TensorFlow C++ API
      • TensorFlow - coursera
      • Notes
      • An Introduction to different Types of Convolutions in Deep Learning
      • One by One [ 1 x 1 ] Convolution - counter-intuitively useful
      • SqueezeNet
      • Deep Compression
      • An Overview of ResNet and its Variants
      • Introducing capsule networks
      • What is a CapsNet or Capsule Network?
      • Xception
      • TensorFlow Eager
    • GitHub
      • Project README
    • Agile - User Stories
    • The Open-Source Data Science Masters
    • Coding Challenge Websites
    • Coding Interview
      • leetcode python
      • Data Structures
        • Arrays
        • Linked List
        • Hash Tables
        • Trees: Basic
        • Heaps, Stacks, Queues
        • Graphs
          • Shortest Path
      • Sorting & Searching
        • Depth-First Search & Breadth-First Search
        • Backtracking
        • Sorting
      • Dynamic Programming
        • Dynamic Programming: Basic
        • Dynamic Programming: Advanced
    • spaCy
    • Pandas
    • Python Packages
    • Julia
      • jupyter
    • macos
    • CPP
      • Debugging
      • Overview of memory management problems
      • What are lvalues and rvalues?
      • The Rule of Five
      • Concurrency
      • Avoiding Data Races
      • Mutex
      • The Monitor Object Pattern
      • Lambdas
      • Maya C++ API Programming Tips
      • How can I read and parse CSV files in C++?
      • Cpp NumPy
    • Advanced Machine Learning
      • Wk 1
      • Untitled
      • Untitled
      • Untitled
      • Untitled
  • data science
    • Resources
    • Tensorflow C++
    • Computerphile
      • Big Data
    • Google ML Crash Course
    • Kaggle
      • Data Versioning
      • The Basics of Rest APIs
      • How to Make an API
      • How to deploying your API
    • Jupiter Notebook Tips & Tricks
      • Jupyter
    • Image Datasets Notes
    • DS Cheatsheets
      • Websites & Blogs
      • Q&A
      • Strata
      • Data Visualisation
      • Matplotlib etc
      • Keras
      • Spark
      • Probability
      • Machine Learning
        • Fast Computation of AUC-ROC score
    • Data Visualisation
    • fast.ai
      • deep learning
      • How to work with Jupyter Notebook on a remote machine (Linux)
      • Up and Running With Fast.ai and Docker
      • AWS
    • Data Scientist
    • ML for Beginners (Video)
    • ML Mastery
      • Machine Learning Algorithms
      • Deep Learning With Python
    • Linear algebra cheat sheet for deep learning
    • DL_ML_Resources
    • Awesome Machine Learning
    • web scraping
    • SQL Style Guide
    • SQL - Tips & Tricks
  • 💡Ideas & Thoughts
    • Outdoors
    • Blog
      • markdown
      • How to survive your first day as an On-set VFX Supervisor
    • Book Recommendations by Demi Lee
  • career
    • Skills
    • learn.co
      • SQL
      • Distribution
      • Hypothesis Testing Glossary
      • Hypothesis Tests
      • Hypothesis & AB Testing
      • Combinatorics Continued and Maximum Likelihood Estimation
      • Bayesian Classification
      • Resampling and Monte Carlo Simulation
      • Extensions To Linear Models
      • Time Series
      • Distance Metrics
      • Graph Theory
      • Logistic Regression
      • MLE (Maximum Likelihood Estimation)
      • Gradient Descent
      • Decision Trees
      • Ensemble Methods
      • Spark
      • Machine Learning
      • Deep Learning
        • Backpropagation - math notation
        • PRACTICE DATASETS
        • Big Data
      • Deep Learning Resources
      • DL Datasets
      • DL Tutorials
      • Keras
      • Word2Vec
        • Word2Vec Tutorial Part 1 - The Skip-Gram Model
        • Word2Vec Tutorial Part 2 - Negative Sampling
        • An Intuitive Explanation of Convolutional Neural Networks
      • Mod 4 Project
        • Presentation
      • Mod 5 Project
      • Capstone Project Notes
        • Streaming large training and test files into Tensorflow's DNNClassifier
    • Carrier Prep
      • The Job Search
        • Building a Strong Job Search Foundation
        • Key Traits of Successful Job Seekers
        • Your Job Search Mindset
        • Confidence
        • Job Search Action Plan
        • CSC Weekly Activity
        • Managing Your Job Search
      • Your Online Presence
        • GitHub
      • Building Your Resume
        • Writing Your Resume Summary
        • Technical Experience
      • Effective Networking
        • 30 Second Elevator Pitch
        • Leveraging Your Network
        • Building an Online Network
        • Linkedin For Research And Networking
        • Building An In-Person Network
        • Opening The Line Of Communication
      • Applying to Jobs
        • Applying To Jobs Online
        • Cover Letters
      • Interviewing
        • Networking Coffees vs Formal Interviews
        • The Coffee Meeting/ Informational Interview
        • Communicating With Recruiters And HR Professional
        • Research Before an Interview
        • Preparing Questions for Interviews
        • Phone And Video/Virtual Interviews
        • Cultural/HR Interview Questions
        • The Salary Question
        • Talking About Apps/Projects You Built
        • Sending Thank You's After an Interview
      • Technical Interviewing
        • Technical Interviewing Formats
        • Code Challenge Best Practices
        • Technical Interviewing Resources
      • Communication
        • Following Up
        • When You Haven't Heard From an Employer
      • Job Offers
        • Approaching Salary Negotiations
      • Staying Current in the Tech Industry
      • Module 6 Post Work
      • Interview Prep
  • projects
    • Text Classification
    • TERRA-REF
    • saildrone
  • Computer Graphics
  • AI/ML
  • 3deeplearning
    • Fast and Deep Deformation Approximations
    • Compress and Denoise MoCap with Autoencoders
    • ‘Fast and Deep Deformation Approximations’ Implementation
    • Running a NeuralNet live in Maya in a Python DG Node
    • Implement a Substance like Normal Map Generator with a Convolutional Network
    • Deploying Neural Nets to the Maya C++ API
  • Tools/Plugins
  • AR/VR
  • Game Engine
  • Rigging
    • Deformer Ideas
    • Research
    • brave rabbit
    • Useful Rigging Links
  • Maya
    • Optimizing Node Graph for Parallel Evaluation
  • Houdini
    • Stuff
    • Popular Built-in VEX Attributes (Global Variables)
Powered by GitBook
On this page
  • Websites
  • Online Courses
  • Books
  • Github Libraries
  • Online Judges
  • Tools
  1. math

Algorithms

PreviousImproving your Algorithms & Data Structure SkillsNextAlgorithms (MIT)

Last updated 6 years ago

A curated list of awesome places to learn and/or practice algorithms. Inspired by and all the other awesome Awesome libraries.

If you want to contribute, please read the .

Websites

Websites you should use to learn classic algorithms

  • - Interactive visualisations for learning how graph traversal algorithms work

  • - A didactic, animated, exposition of algorithms.

  • - Dozens of animated algorithms (with code), and you can also create your own.

  • - A dense article on Algorithms Visualization.

  • - Big-O complexities of common algorithms used in Computer Science.

  • - Practice problems recommender (includes Codeforces, Codechef and Spoj).

  • - Visualize the behavior of Data Structures and play with its operations.

  • - Lots and lots of well explained and implemented algorithms.

  • - A visual representation on how algorithms such as A*, IDA*, Breadth-First-Search, Best-First-Search and others describe a path between two points A and B.

  • - A programming chrestomathy site which aims to present implementations of many algorithms and data structures in different programming languages.

  • - Nice and simple animations of sorting algorithms. With short codes and discussions.

  • - Some algorithms nicely explained.

  • - The Sound of Sorting - "Audibilization" and Visualization of Sorting Algorithms

  • - Visualising data structures and algorithms through animation.

  • - Of course!!

  • - and why not ?!!

Online Courses

Free and High Quality Courses Online

Books

The most highly regarded books to learn algorithms

Github Libraries

Implementations of the most classic algorithms in a wide variety of programming languages

  • C#

  • C++

  • Java

  • JavaScript

  • Objective-C

  • Python

  • Ruby

  • Swift

  • Language agnostic

Online Judges

Online Judges to practice what you learned above

Tools

Some tools that can help you in the learning of algorithms

- The primary topics are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer, and randomized algorithms.

- The primary topics are: data structures, graph primitives, and their applications.

- The primary topics are: greedy algorithms and dynamic programming.

- The primary topics are: shortest paths, NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems.

- This course covers the essential information that every serious programmer needs to know about algorithms and data structures.Part I covers elementary data structures, sorting, and searching algorithms.

- Part II focuses on graph- and string-processing algorithms.

- Algorithm course ministred by Tomas Cormen and Devin Balkcom.

- Well explained algorithms.

- Similar to the previous one, but with different algorithms.

- An easy and well explained introduction to algorithms.

- Python-based Algorithms course.

- Beginner's algorithms course with fun illustrations, based on the book Grokking Algorithms

- Lots of well explained vidoes on various computer science subjects. Account terminated due to violations of Youtube Policies.

- Pretty straight-forward.

- Problems explained with Java, OO good practices, visualizations, and free online resources.

- The basic concepts and usages of data structures.

- An awesome book about algorithms and data structures.

- An illustrated book on algorithms with practical examples.

- Essential!

- A practical guide to concepts, theory and code.

- Easy to read and full of real world examples.

- The Book.

- Online Judge and problem archive.

- Hundreds of problems from previous ACM-ICPC Regionals and World Finals.

- Japanese Online Judge.

- Research based algorithmic problems.

- Korean Online Judge. 10000+ problems. Supports 60+ languages.

- Holds online contests and IOI practice contests

- More problems and monthly online contests.

- The only programming contests Web 2.0 platform

- Practive programming and tackle out your next tech interview

- Real world contests online!

- A website that houses support to solve algorithms in many languages in varying difficulty.

- A decent website with algorithm challenges from beginner to advanced levels. Supports most of the popular languages like C++, python, javascript, ruby.

- Practice alogrithmic problems & challenges and participate in hiring challenges.

- Featured algorithm and functional programming online judges

- Romanian Online Judge. 1500+ algorithmic problems

- Online judge and problem archive

- Korean Online Judge(Half English). 1300+ problems.

- Learn and practice algorithms by solving challenges online.

- Learn algorithms and prepare for interviews.

- Chinese Online Judge.

- Mathematical problems that can be solved using algorithms (or just a pencil, depends on how much you already know).

- A platform for learning bioinformatics and programming through problem solving.

- Online Judge and contest host with a lot of algorithmic problems in the archive to practice.

- An introductory Python course with 100+ algorithmic problems and a step-by-step debugger (from Russia).

- More problems.

- Lots of problems and real world/money worthy problems in Graphic Design, Data Science and Development.

- Brazilian Online Judge. Not so much problems, but it's growing and it has online contests.

- Hundreds of problems (from previous ACM-ICPC Regionals, World Finals and others).

- Interactive, test-driven coding challenges (algorithms and data structures).

🪶
awesome-awesomeness
contribution guidelines
Awesome Algorithms
Websites
Online Courses
Books
Github Libraries
Online Judges
Tools
A Visual Guide to Graph Traversal Algorithms
Algomation
Algorithm Visualizer
Algorithms Visualization
Big-O Cheat Sheet
Code-Drills
Data Structure Visualizations
Geeks for Geeks
Path Finding
Rosetta Code
Sorting Algorithms
Stoimen's web log
The Sound of Sorting
VisuAlgo
Wikipedia - Algorithms
Wikipedia - Data Structures
Algorithms: Divide and Conquer, Sorting and Searching, and Randomized Algorithms
Algorithms: Graph Search, Shortest Paths, and Data Structures
Algorithms: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
Algorithms: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
Algorithms, Part I
Algorithms, Part II
Khan Academy Algorithms
MIT - 6-006
MIT - 6-046j
MIT - 6-00sc
Udacity Intro to Algorithms
Algorithms in Motion
YogiBearian YouTube Channel
Algorithm Design
Algorithms
Data Structures Using C
Elementary Algorithms
Grokking Algorithms
Introduction to Algorithms
Swift Algorithms & Data Structures
The Algorithm Design Manual
The Art of Computer Programming
C
CoffeeScript
by @shkolovy
by @aalhour
by @justcoding121
by @xtaci
by @PetarV-
by @faheel
Erlang
Go
by @jpa99
by @phishman3579
by @asmolich
by @psjava
by @jeandersonbc
by @pedrovgs
by @Erdos-Graph-Framework
by @deepak-malik
by @yusufcakal
by @jiayihu
by @felipernb
by @nzakas
by @duereg
by @mgechev
by @trekhleb
by @ManrajGrover
by @ EvgenyKarkan
by @nryoung
by @prakhar1989
by @laurentluce
by @nbro
by @keon
by @kanwei
by @sagivo
by @kumar91gopi
Scala
by @kingreza
by @waynewbishop
by @hollance
by @kennyledet
by @indy256
by @sagivo
by @patmorin
A2 Online Judge
ACM-ICPC Live Archive
AIZU ONLINE JUDGE
Algo Muse
Baekjoon Online Judge
CS Academy
CodeChef
Codeforces
Codefights
CodeMarshal
CodeWars
CoderByte
HackerEarth
HackerRank
Infoarena
Kattis
LavidaOnlineJudge
Learneroo Algorithms Tutorials
LeetCode
PKU JudgeOnline
ProjectEuler
Rosalind
ShareCode.io
Snakify
SPOJ
TopCoder
URI
UVA
interactive-coding-challenges