0% found this document useful (0 votes)
207 views

How Do I Start Learning or Strengthen My Knowledge of Data Structures and Algorithms - Quora

To learn data structures and algorithms: 1. Start with basic data structures like arrays, stacks, queues, linked lists and basic sorting/searching algorithms. 2. Move to more advanced concepts like trees, hashing, and algorithm design approaches like divide-and-conquer. 3. Study from online resources like GeeksforGeeks, Coursera courses on data structures and algorithms, and MIT OpenCourseware video lectures on introduction to algorithms. Practice is important for strengthening knowledge.

Uploaded by

Shanmuga Raj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
207 views

How Do I Start Learning or Strengthen My Knowledge of Data Structures and Algorithms - Quora

To learn data structures and algorithms: 1. Start with basic data structures like arrays, stacks, queues, linked lists and basic sorting/searching algorithms. 2. Move to more advanced concepts like trees, hashing, and algorithm design approaches like divide-and-conquer. 3. Study from online resources like GeeksforGeeks, Coursera courses on data structures and algorithms, and MIT OpenCourseware video lectures on introduction to algorithms. Practice is important for strengthening knowledge.

Uploaded by

Shanmuga Raj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms?

- Quora

5
Home Answer Spaces Notifications Search Quora Add Question or Link

Quora uses cookies to improve your experience. Read more

You have been blocked from contributing to Quora because your name does not comply with our name policy. Please update your profile to use
your real, full name.
If you are already using your real name, please submit a moderation appeal through the contact form.

Data Structures Knowledge Algorithms Learning +3

How do I start learning or strengthen my knowledge


of data structures and algorithms?
Answer Follow · 4.8k Request 1

You cannot write an answer


You aren't allowed to write answers to questions.

Ad by Jira Software, Atlassian


Jira official site.
One tool to track issues & release great software. Try Jira for free.

Free trial at jira.com

100+ Answers

Arunabh Ghosal, Senior Engineer at Samsung R&D Institute - Bangalore


(2018-present)
Updated Nov 1, 2018

Originally Answered: How do I learn data structures and algorithms from scratch?

I was in the same situation 1 and a half year ago. I will explain how I learnt data More Related Questions

structure and algorithms.


In Other Languages
In the following text Algorithms and Data structure which are marked in bold
are very important. Learn every algorithm/data structure with it’s time & space En español: ¿Cómo puedo empezar a aprender o
reforzar mi conocimiento de las estructuras de datos y
complexity, stable, in place, and where it is useful. algoritmos?

En français : Comment commencer à apprendre ou à


What to study?
approfondir mes connaissances en structures de
données et algorithmes ?
Step 0 :
In italiano: Come posso imparare le basi o rafforzare
la mia conoscenza in materia di strutture di dati e
Understand about pointers in C++, structures or classes
algoritmi?

Learn how to calculate worst case, best case , average case time Dalam bahasa Indonesia: Bagaimana saya mulai
complexities belajar atau memperkuat pengetahuan saya tentang
struktur data dan algoritma?
Related Questions
Step 1 : Em português: Como eu começo a aprender ou a
fortalecer
What are othe
meu conhecimento
best de estruturas
books on algorithms anddedata
Learn few basic sorting algorithms along with their use case and time dados e algoritmos?
structures?
complexity. िह ी म: म डे टा संरचनाओं और ए ो रदम के बारे म अपने ान
What are some good websites to learn data
को सीखना या मजबूत कैसे कर सकता ँ ?
structures and algorithms?
Bubble sort
Why should I learn data structures and
Insertion sort algorithms?

Selection sort What are the best and efficient ways to learn
algorithms for beginners?

Learn searching algorithms along with time complexity. How can I learn data structures effectively?

Linear Search What should I learn first: data structures or


algorithms?
Binary Search
What are the best books to learn algorithms and
data structures? Are there any good blogs/posts
Step 2 : on these? Which books explain these concepts i...

What basic data structures and algorithms should

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 1/7
6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms? - Quora
one learn before starting competitive
Stack 5
Home Answer Spaces Notifications Search Quora programming? Add Question or Link

Queue
 Ask New Question
Single Linked List (Insert at front,back,middle; Delete at front back
middle)

Double Linked List

Circular Linked List

Step 3 :

Learn the following approaches in algorithms

Divide and Conquer (Merger Sort, Quick Sort, Binary Search are
some examples)

Greedy method (Knapsack, Prim’s algorithm, Kruskal’s


algorithm, Dijkstra, Bellmanford)

Dynamic programming (0/1 Knapsack, Travelling Salesman


Problem, Coin change)

Backtracking (N Queens problem)

Step 4 :

Binary Tree

Binary Search Tree

Height of a Tree

Tree Traversal

BFS

DFS

Searching an element

AVL Tree

Hashing

Where to study from?

GeeksforGeeks | A computer science portal for geeks

Data Structures and Algorithms | Coursera

Video Lectures | Introduction to Algorithms (SMA 5503) | Electrical Engineering


and Computer Science | MIT OpenCourseWare
89.1k views · View Upvoters · View Sharers

999 Upvotes Share · 27

Akash Singh
Thank You Mr. Arunabh Ghosal

3 more comments from Ajay Sabarish, Bhavya Arora, Yogesh Patil

Sponsored by State Bank of India


Are you looking for an education loan to study abroad?
With low EMI, SBI Global Ed-Vantage will help you reach your educational
goals.

Apply now at onlineapply.sbi.co.in

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 2/7
6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms? - Quora
Robin Thomas, Programmer. All Around Nerd 5
Home
Updated Nov 21, 2017 Answer Spaces Notifications Search Quora Add Question or Link

Originally Answered: How can I learn algorithms and data structures from scratch?

Day −∞ to 0: Stick to a programming language like C or C++. Make sure that


you are comfortable with pointers/objects.

Day 1: Understand the concept of Algorithmic complexity . Skip the theory


for now, but for every piece of code you write, you should be able to derive both
time and space complexity.

Day 2 - 10: Let’s start with some simple data structures,

1. Arrays

2. Linked Lists

3. Strings

4. Stacks

5. Queues

Understand their basic operations (insert, delete, search, traversal) and their
complexity - Big-O Algorithm Complexity Cheat Sheet , and code them all.

Day 11 - 25: Let’s now learn some simple algorithms,

1. Sorting - Insertion sort , Merge sort , Quick sort , Heap sort ,


Bucket sort , Counting sort , Radix sort , External sorting

2. Search - Linear search , Binary Search (along with its variants).

3. Prime Numbers - Sieve of Eratosthenes , Primality test

4. Strings - String searching , LCS , Palindrome detection

5. Miscellaneous - Euclidean algorithm , Matrix multiplication ,


Fibonacci Numbers , Pascal's Triangle , Max Subarray problem

Day 26 - 50: Once you are comfortable with everything above, start doing
problems from,

1. Cracking the Coding Interview

2. Elements of Programming Interviews

3. Programming Interviews Exposed: Secrets to Landing Your Next Job

4. GeeksforGeeks

5. HackerRank

6. InterviewBit

Stick to chapters of arrays, linked lists, strings, stacks, queues and complexity.

Day 51 - 60: Let’s learn some non-linear data structures,

1. Tree

a. Binary Tree, Binary Search Tree - Tree traversals , Lowest common


ancestor , Depth, Height & Diameter , Finding k-th smallest
element

b. Heaps

2. Hash table - 4 sum problem , Checking if sudoku solution is valid

3. Graph - Breadth-first search , Depth-first search , Topological


sorting , Minimum spanning tree , Shortest path problem ,

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 3/7
6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms? - Quora

Day 61- 90: Refer to the previous resources and start doing problems
5 from trees,
Home Answer Spaces Notifications Search Quora Add Question or Link
hash tables, heaps and graphs.

Day 91 - 100: Understand Computational complexity theory and NP-


completeness , Knapsack problem , Travelling salesman problem , SAT
problem and so on.

Day 101 - ∞ : You are now better than most of the CS undergrads. Keep revising
the above topics and start competitive programming! Good luck!

Thanks for the A2A Meghna Bhasin


94.3k views · View Upvoters · View Sharers · Answer requested by Meghna Bhasin

2.8k Upvotes Share · 29

Manikantha Nekkalapudi
I am comfortable in java than C or C++. Is that okay with it?

3 more comments from Anshuman Patel, Kamesh, Syam Pradeep Reddy

Tejas Jaiswal (तेजस जै ाल), Still Studying


Updated Nov 14, 2017

Please don't waste your time and money to buy a book to learn Data structures
and algorithm.

Data structure is a hot topic now thanks to google interviews, a subject which
used to get ignored because of its uselessness is now the most important CS
subject!

Now let's come back to your question (pausing my rant)…

As stated above, the only real use of data structures in current scenario is to
crack coding interviews so in my opinion it's better to not waste money and time
in buying a book. Go to youtube search for mycodeschool, they have really nice
lectures on data structures.

Use this approach, ... (more)

27 Upvotes Share · 1

Ashish Gautam
Money spent on books isn't a waste. Everyone has a different learning style. Moreove…

3 more comments from Mayukh Datta, Nawab Khan, Pradeep Lamba

Sponsored by Atlassian Opsgenie


Your next incident doesn’t stand a chance.
Notify the right people through the right channels with Opsgenie. Start your free
trial today!

Learn more at opsgenie.com

Manohar Reddy Poreddy, Ramanujan in 60 days; 0 to Top100 Algo in


130d; Top400 DS 40
Updated Feb 20, 2018

Updated Aug 17:

Yesterday, I reached 99 percentile in algorithms on Hackerrank in less than 1


year, with really some on/off work for multiple months, in actual, the number of
days to get this is 106 days, that is, about 3 months.

If I have to redo my last year work, I would do a few like this:

1. Programming language

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 4/7
6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms? - Quora

a. I would choose C++ 14 with STL/ Java over C language to save


5 at least
Home Answer Spaces Notifications Search Quora Add Question or Link
1/2 time.

2. Updated Aug 17: I would buy & use a white board (2X3 feet sized) with
duster (less than 1200 rupees) at the begin itself, 2 blue white board
markers to write, white board marker refill ink - 10 set box (abo...

(more)

457 Upvotes Share · 7

Akshay Rt
Thanks for your suggestions:)...

3 more comments from Mitul Jindal, Puspender Tanwar, Nihar More

Brian Bi, software engineer


Answered Feb 3, 2015

A competitive programmer's perspective.


Read the following books: Algorithms by Sedgewick, Introduction to
Algorithms by Cormen et al.

Read the TopCoder Algorithm Tutorials . Shout out to Michal Forišek


(misof) and Dima Korolev (DmitryKorolev).

Solve the problems in the USACO Training Program Gateway .

Solve problems in online judges and compete in programming contests.


For data structures in particular, in my experience, Central/East
European OIs tend to have the most interesting problems. For
algorithms, try to solve problems from a variety of different sources so
you can learn to apply as ma...

(more)

2.6k Upvotes Share · 1

Saumye Srivastava
I really don't think Michal Forišek(misof) and Dima Korolev (DmitryKorolev) are fre…

3 more comments from Ravi Karan, Minhaz Mishu, Trilok Reddy

Jonathan Paulson, Software engineer and competitive programmer


Answered Feb 27, 2013

Go to Timus Online Judge , and work down in order. If you get bored, skip
down a ways. If you can't solve the problem, look at the per-problem forum. If
that doesn't help, ask someone (like StackOverflow, or a friend, or Quora, or...)

Once you've done 50-100 of those, you can write some code and maybe know a
few basic algorithms. Go to Codeforces and do their weekly-ish contests. Do
TopCoder contests too. When you don't get problems, figure them out
afterwards.

Once you get into Div 1 on Codeforces/TopCoder, you have some skills:
1) You are an algorithms/data structures "expert". You proba... (more)

2.6k Upvotes Share · 2

Eugene Yarovoi
I feel like you won't really understand how the internet works if you write a multipla…

3 more comments from Pratik Singhal, Pankaj Kumar, Taigi Tanaka

Abhishek Mukherjee, Competitive Sport Programmer

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 5/7
6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms? - Quora
Answered Feb 11, 2017 5
Home Answer Spaces Notifications Search Quora Add Question or Link
The first thing you need to do is signing up in a Competitive Programming
website. There are lot of websites to start with:

HackerRank

Codeforces

Learning Data Structures and Algorithms is fine but you won’t grasp the concept
until and unless you use them to solve problems.

Study http://geeksforgeeks.com to brush up concepts and learn new things.

Also buy the book Data Structures and Algorithms made easy by Narasimha
Karumanchi. The concepts are well explained with lots of example problems at
the end of each chapter.

You can join online MOOC courses to stay in the track of learning. I particulary...
(more)

7 Upvotes Share · 1

Tadeusz Panda, CS student at Jagiellonian University


Answered Aug 15, 2016

Originally Answered: How can I learn algorithms and data structures from scratch?

Some of the good universities (I recall someone was talking about MIT, but I
don’t know if that’s the best available or not) share recordings from their
lectures and sometimes also assignments on sites like Coursea and similar. You
can find one of those and have a similar experience to if you are being taught the
subject at your university.
1k views

0 Upvotes Share

Jagannath D, Koyaanisqatsi
Answered Dec 30, 2014

Originally Answered: How do I become a master in algorithms and data structure?

You should thoroughly understand the concepts involved. There are many
introductory books. Dont miss out on Concrete Mathematics by Knuth.

Solve as many problems as you can from this book and you will be well prepared
to tackle advanced problems in this area.
26 views · View Upvoters

2 Upvotes Share

Abhirup Mondal
Is there any place where I can get this book in print in India ?

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 6/7
6/19/2019 (5) How do I start learning or strengthen my knowledge of data structures and algorithms? - Quora

5
Home Answer Spaces Notifications Search Quora Add Question or Link

Top Stories from Your Feed

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms 7/7

You might also like