You are on page 1of 43

Articles on

Data Structures & Algorithms


Important Notes
 Most of these articles are from Medium written by Techies
 Without having the notion “I know this, I know that” – Read
through the articles and get your fundamentals
 When you try to understand the concepts ask the questions –
Why ? How ? What ?
For e.g., if you say the time complexity of binary search is
O(logn) then be prepared to explain why ?
 Still there are lot more areas to cover but right now it has
taken shape and this is time to read the articles and
understand the concepts
 Data Structures & Algorithms are very important for your
placement. No 1 subject I would say.
 ECE, EEE, EIE students – These articles will help you learn the
basics in Data Structures
Important Notes
 CSE students - You have a lot to revise especially advanced
topics such Dynamic Programming, Divide & Conquer,
Pattern Matching, Data Compression & Greedy Algorithms
 I liked these articles because they have explained it with nice
diagrams and I found it to be a lot more creative than text
books
 Happy Learning & Wish you all the best
Data Structures
 8 Common Data Structures every Programmer must know
https://
towardsdatascience.com/8-common-data-structures-every-progr
ammer-must-know-171acf6a1a42
 Time and Space complexities of commonly used data
structures
https://www.bigocheatsheet.com/
Big O
 A beginner's guide to Big O notation
https://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notati
on
/
 Big O Cheat Sheet
https://www.bigocheatsheet.com/
 Big-O Notation: A Simple Explanation with Examples
https://medium.com/better-programming/big-o-notation-a-si
mple-explanation-with-examples-a56347d1daca
Linked Lists
 What’s a Linked List, Anyway? [Part 1]
https://medium.com/basecs/whats-a-linked-list-anyway-part-1
-d8b7e6508b9d
 What’s a Linked List, Anyway? [Part 2]
https://
medium.com/basecs/whats-a-linked-list-anyway-part-2-131d96f
71996
 Introduction to Linked Lists in C - A visual guide to linked
lists
https://
medium.com/better-programming/introduction-to-linked-lists-i
n-c-80fc426a6a2f
 Reversing a Doubly Linked List (Whiteboarding Practice)
https://medium.com/@sofia.benitez39/reversing-a-doubly-link
ed-list-whiteboarding-practice-bbecb38b7734
Stack
 Data Structures: An Introduction to Stacks
https://medium.com/better-programming/data-structures-an-i
ntroduction-to-stacks-a902cd830018
 Implementing a Stack using Linked List
https://
towardsdatascience.com/linked-lists-the-stack-fa73bc2a37ad
 Stacks and Overflows
https://medium.com/basecs/stacks-and-overflows-dbcf7854dc
67
Queue
 Implementing a Queue using Linked List
https://
towardsdatascience.com/linked-lists-the-queue-7c1f709aa141
 To Queue Or Not To Queue
https://medium.com/basecs/to-queue-or-not-to-queue-2653bcd
e5b04
Binary Search
 Binary Search Practice Problems
https://medium.com/@
codingfreak/binary-search-practice-problems-4c856cd9f26c
 5 Easy Steps to Mastering Binary Search
https://medium.com/@
johnathonwood/technical-interviews-part-ii-divide-and-conque
r-your-binary-search-anxiety-484d5f531c6f
 Understanding the Binary Search
https://medium.com/@krunal.vora/understanding-the-binary-
search-9539de37ea91
Trees
 How To Not Be Stumped By Trees
https://medium.com/basecs/how-to-not-be-stumped-by-trees-
5f36208f68a7
 8 Useful Tree Data Structures Worth Knowing
https://
towardsdatascience.com/8-useful-tree-data-structures-worth-kn
owing-8532c7231e8c
Binary Trees
 4 Types of Tree Traversal Algorithms
https
://towardsdatascience.com/4-types-of-tree-traversal-algorithms
-d56328450846
Binary Search Trees
 Binary Trees: The Search Tree
https://
towardsdatascience.com/an-introduction-to-binary-trees-a-man
ageable-approach-to-finding-values-6b35735b1096
 Leaf It Up To Binary Trees
https://medium.com/basecs/leaf-it-up-to-binary-trees-11001aa
f746d
AVL Trees
 The Little AVL Tree That Could self balance
https://
medium.com/basecs/the-little-avl-tree-that-could-86a3cae410c
7
 Data Structure and Algorithms - AVL Trees
https://www.tutorialspoint.com/data_structures_algorithms/
avl_tree_algorithm.htm
Red Black Trees
 Painting Nodes Black With Red-Black Trees
https://medium.com/basecs/painting-nodes-black-with-red-bl
ack-trees-60eacb2be9a5
 Binary Trees: Red Black
https://towardsdatascience.com/red-black-binary-tree-maintai
ning-balance-e342f5aa6f5
Heap
 Binary Trees: The Heap
https://
towardsdatascience.com/binary-trees-the-heap-381efd4a4611
 Build A Max Heap
https://medium.com/@
randerson112358/lets-build-a-max-heap-161d676394e
 Build A Min Heap
https://medium.com/@randerson112358/lets-build-a-min-heap
-4d863cac6521
 Learn By Practice: Heaps Data Structure
https://medium.com/@dipanshu.ycce07/learn-by-practice-hea
ps-data-structure-50e5be082974
Heap
 Learning to Love Heaps
https://
medium.com/basecs/learning-to-love-heaps-cef2b273a238
Priority Queues
 An Intro to Priority Queues
https://medium.com/@angeloacebedo/an-intro-to-priority-que
ues-a28c2e09db70
Tries
 Trying to Understand Tries
https://
medium.com/basecs/trying-to-understand-tries-3ec6bede0014
 Tries – Brilliant Learning
https://brilliant.org/wiki/tries/
B Trees
 B Tree Visualization
https://www.cs.usfca.edu/~galles/visualization/BTree.html
 Busying Oneself With B-Trees
https://
medium.com/basecs/busying-oneself-with-b-trees-78bbf10522
e7
 B-Tree Tutorial - An Introduction to B-Trees
https://www.youtube.com/watch?v=C_q5ccN84C8
 2-3 Trees & B Trees
https://ocw.mit.edu/courses/electrical-engineering-and-comp
uter-science/6-046j-design-and-analysis-of-algorithms-spring-2
015/recitation-notes/MIT6_046JS15_Recitation2.pdf
Sorting
 Sorting Out The Basics Behind Sorting Algorithms
https://medium.com/basecs/sorting-out-the-basics-behind-sort
ing-algorithms-b0a032873add
Sorting
 Bubbling Up With Bubble Sorts
https://medium.com/basecs/bubbling-up-with-bubble-sorts-3d
f5ac88e592
Sorting
 Pivoting To Understand Quicksort [Part 1]
https://medium.com/basecs/pivoting-to-understand-quicksort-
part-1-75178dfb9313
 Pivoting To Understand Quicksort [Part 2]
https://medium.com/basecs/pivoting-to-understand-quicksort-
part-2-30161aefe1d3
 Sorting Algorithm 5: Quick Sort — aj’s guide for Algo and DS
https://medium.com/@ajay.thousand/sorting-algorithm-5-quic
k-sort-ajs-guide-for-algo-and-ds-cea0e71d7dbc
 Making Sense of Merge Sort [Part 1]
https://medium.com/basecs/making-sense-of-merge-sort-part-
1-49649a143478
 Making Sense of Merge Sort [Part 2]
https://medium.com/basecs/making-sense-of-merge-sort-part-
2-be8706453209
Sorting
 Basic Algorithms — Heapsort
https://
towardsdatascience.com/basic-algorithms-heapsort-31d64d6919
a1
 Getting To The Root Of Sorting With Radix Sort
https://medium.com/basecs/getting-to-the-root-of-sorting-with
-radix-sort-f8e9240d4224
 Heapify All The Things With Heap Sort
https://medium.com/basecs/heapify-all-the-things-with-heap-s
ort-55ee1c93af82
Hashing
 Hashing Out Hash Functions
https://
medium.com/basecs/hashing-out-hash-functions-ea5dd8beb4d
d
 Consistent Hashing
https://
medium.com/system-design-blog/consistent-hashing-b9134c8a9
062
 Linear Probing & Quadratic Probing
https://medium.com/@
matthewharrilal/open-addressing-resolving-collisions-one-day-a
t-a-time-49415ca73f71
 Understanding “Hash-Table” without any code
https
://medium.com/@cakrawalabuka/understanding-hash-table-w
Divide & Conquer Algorithms
 A Gentle Introduction to Divide and Conquer Algorithms
https://
medium.com/brandons-computer-science-notes/a-gentle-intro
duction-to-divide-and-conquer-algorithms-5398542d4067
 Divide and Conquer Interview Questions and Practice
Problems
https://medium.com/@
codingfreak/divide-and-conquer-interview-questions-and-prac
tice-problems-8855e45f4200
 Divide and Conquer Algorithms
https://
medium.com/brandons-computer-science-notes/divide-and-co
nquer-algorithms-4e83d9999ffa
 Divide and Conquer Algorithms
https://medium.com/cracking-the-data-science-interview/divi
de-and-conquer-algorithms-b135681d08fc
Divide & Conquer Algorithms
 Divide and Conquer Paradigm in Algorithms
https://medium.com/@
gaurav_52429/divide-and-conquer-paradigm-in-algorithms-ef4
3fb2222f5
 Count Inversions
https://
medium.com/the-andela-way/count-inversions-5fe3288f11fb
 Code Challenge Algorithms - How to Divide and Conquer
https://medium.com/@chris.hague/code-challenge-algorithms
-7289ff88aad6
Divide & Conquer Algorithms
 What is Divide and Conquer Algorithm
https://medium.com/@
mohitrawal0001/what-is-divide-and-conquer-algorithm-517093
03e742
 Divide and Conquer strategy to solve Maximum Subarray
Problem
https://medium.com/@
rajdeepbharati/divide-and-conquer-strategy-to-solve-maximu
m-subarray-problem-45a72acbe3cd
 Intro to Divide and Conquer Algorithms
https://medium.com/jeremy-gottfrieds-tech-blog/intro-to-divi
de-and-conquer-algorithms-9a2d9659c12
 Divide and Conquer Algorithms
https://medium.com/@cristinamulaslopez/divide-and-conque
r-algorithms-d02141ecb3f1
Greedy Algorithms
 Greedy Algorithm and Dynamic Programming
https://
medium.com/cracking-the-data-science-interview/greedy-algo
rithm-and-dynamic-programming-a8c019928405
 Greedy Algorithm Explained using LeetCode Problems
https://medium.com/algorithms-and-leetcode/greedy-algorit
hm-explained-using-leetcode-problems-80d6fee071c4
 Top 7 Greedy Algorithm Problems
https://medium.com/@
codingfreak/top-7-greedy-algorithm-problems-3885feaf9430
 Greedy Algorithms
https://medium.com/the-graph/greedy-algorithms-f91424e56
780
Greedy Algorithms
 How greedy algorithms work
https://medium.com/@
richggall/how-greedy-algorithms-work-4d44688c86da
 Greedy Algorithm
https://medium.com/@
randerson112358/greedy-algorithm-f09985f3448b
 Minimum Number of Platforms problem using greedy
approach
https://medium.com/@parv51199/minimum-number-of-platf
orms-problem-using-greedy-approach-ba67409bd1f4
 Job Sequencing Problem with Deadline
https://medium.com/@warlihardik2809/job-sequencing-probl
em-with-deadline-1f9457d80aef
Greedy Algorithms
 Greedy Algorithms — The Car Fueling Problem
https://medium.com/@
TheGeekiestOne/greedy-algorithms-the-car-fueling-problem-a
35ccc9bb011
 Algorithm for deciding how much platform would be
needed based on the train/bus traffic using greedy
algorithm...
https://medium.com/@tankdarshan365/algorithm-for-decidin
g-how-much-platform-would-be-needed-based-on-the-train-bu
s-traffic-using-7b0c804d2645
Dynamic Programming
 What is Dynamic Programming?
https://
www.educative.io/courses/grokking-dynamic-programming-p
atterns-for-coding-interviews/m2G1pAq0OO0
 Kadane’s Algorithm — (Dynamic Programming) — How
and Why does it Work?
https://medium.com/@rsinghal757/kadanes-algorithm-dyna
mic-programming-how-and-why-does-it-work-3fd8849ed73d
 How to Solve Any Dynamic Programming Problem
https://
blog.pramp.com/how-to-solve-any-dynamic-programming-pro
blem-603b6fbbd771
 How to solve the Knapsack Problem with dynamic
programming
https://medium.com/@fabianterh/how-to-solve-the-knapsack
Dynamic Programming
 A Systematic Approach to Dynamic Programming
https://
medium.com/better-programming/a-systematic-approach-to-d
ynamic-programming-54902b6b0071
 Less Repetition, More Dynamic Programming
https://medium.com/basecs/less-repetition-more-dynamic-pr
ogramming-43d29830a630
 Top 50 Dynamic Programming Practice Problems
https://
blog.usejournal.com/top-50-dynamic-programming-practice-pr
oblems-4208fed71aa3
 Learning Dynamic Programming with a popular coding
interview question
https://medium.com/dataseries/learning-dynamic-programm
ing-with-a-popular-coding-interview-question-5a5c0170fa44
Dynamic Programming
 Tutorial-1-(My experiences)-(Dynamic Programming)
https://
blog.usejournal.com/tutorial-my-experiences-1-dynamic-progr
amming-5fa956967c6d
 Tutorial-2-(My Experiences)-Dynamic Programming
https://medium.com/@
karangujar43/tutorial-2-my-experiences-dynamic-programmin
g-7254e35cec1a
 Tutorial-3-(My Experiences)-Dynamic Programming
https://medium.com/@
karangujar43/tutorial-3-my-experiences-dynamic-programmin
g-c711b9ff1071
 Tutorial-4-(My Experiences)-Dynamic Programming
https://medium.com/@
karangujar43/tutorial-4-my-experiences-dynamic-programmin
g-9df183219b12
Dynamic Programming
 Dynamic Programming Tutorials
https://procoderforu.com/category/dynamic-programming/
Algorithmic Approach
 Looking into the Knapsack Problem and its Greedy and
Dynamic Programming solutions from an optimization
model’s perspective.
https://medium.com/@
shivam_m7/looking-into-the-knapsack-problem-and-its-gree
dy-and-dynamic-programming-solutions-from-an-35ab14412
0d1
 Surfing on Greedy Algorithms and Dynamic Programming
https://medium.com/@
swarnasowminarayanan/a-dive-into-greedy-algorithms-and-
dynamic-programming-66548bfc9310
 Dynamic Programming Vs Divide-and-Conquer
https://
itnext.io/dynamic-programming-vs-divide-and-conquer-2fea
680becbe
Algorithmic Approach
 Divide and Conquer and Dynamic Programming Algorithms
https://medium.com/@bindeshwar.web/divide-and-conquer-
and-dynamic-programming-algorithms-9a344e49dbb9
String(Pattern) Matching Algorithms
 Knuth Morris Pratt Algorithm Demystified
https://medium.com/@
giri_sh/string-matching-kmp-algorithm-27c182efa387
 The Knuth-Morris-Pratt Algorithm(KMP)
https://medium.com/@
niralipatel047/the-knuth-morris-pratt-algorithm-kmp-9e8f466cf
bdf
 Pattern Searching algorithm Knuth–Morris–Pratt aka KMP
Algorithm
https://medium.com/@pivincii/pattern-searching-algorithm-k
nuth-morris-pratt-aka-kmp-algorithm-13f4a9fd968b
 Boyer Moore String Matching Algorithm
https://medium.com/algopods/boyer-moore-string-matching-
algorithm-842060bc7b55
String(Pattern) Matching Algorithms
 How grep search works
https://medium.com/@
ongspxm/the-boyer-moore-string-search-is-an-ingenious-peice-
of-search-algorithm-69514ede91ef
 Calculating Boyer Moore Bad Character Table with examples
https://medium.com/@sula.ranawake/calculating-boyer-moor
e-bad-character-table-with-examples-d855e04d5bd8
Data Compression Algorithms
 Huffman Encoding
https://medium.com/@
shubhi.rustagi99/huffman-encoding-86847993c298
 Huffman Coding
https://medium.com/@media.sbw/huffman-coding-%E9%9C
%8D%E5%A4%AB%E6%9B%BC%E7%B7%A8%E7%A2%BC-4b
88a3479dd8
 Implementation of Huffman encoding
https://medium.com/@
hemalatha.psna/implementation-of-huffman-encoding-b19aa34
4cb65
 LZW Compression Algorithm
https://medium.com/100-days-of-algorithms/day-56-lzw-3d4
c4a63e4d2
Graph Theory
 Spinning Around In Cycles With Directed Acyclic Graphs
https://medium.com/basecs/spinning-around-in-cycles-with-d
irected-acyclic-graphs-a233496d4688
 Finding The Shortest Path, With A Little Help From Dijkstra
https://medium.com/basecs/finding-the-shortest-path-with-a-l
ittle-help-from-dijkstra-613149fbdc8e
 Heapify All The Things With Heap Sort
https://medium.com/basecs/heapify-all-the-things-with-heap-
sort-55ee1c93af82
Graph Theory
 From Theory To Practice: Representing Graphs
https://medium.com/basecs/from-theory-to-practice-represent
ing-graphs-cfd782c5be38
Graph Theory
 Going Broad In A Graph: BFS Traversal
https://medium.com/basecs/going-broad-in-a-graph-bfs-trave
rsal-959bd1a09255
 Breaking Down Breadth-First Search
https://medium.com/basecs/breaking-down-breadth-first-sear
ch-cebe696709d9
 Demystifying Depth-First Search
https://medium.com/basecs/demystifying-depth-first-search-a
7c14cccf056
 Deep Dive Through A Graph: DFS Traversal
https://medium.com/basecs/deep-dive-through-a-graph-dfs-tr
aversal-8177df5d0f13
Wish you all the best

You might also like