Introduction to Algorithms and Data structures in C++
4.3 (495 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
8,113 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Introduction to Algorithms and Data structures in C++ to your Wishlist.

Add to Wishlist

Introduction to Algorithms and Data structures in C++

A step-by-step guide with solved problems. I'm teaching visually with lots of examples.
4.3 (495 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
8,113 students enrolled
Created by Andrei Margeloiu
Last updated 7/2017
Curiosity Sale
Current price: $10 Original price: $200 Discount: 95% off
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • 5 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Deeply understand basic Algorithms & Data Structures concepts
  • Apply Algorithms & Data structures to new problems
  • Analyse algorithms efficiency
  • Find efficient algorithms
  • Solve algorithmic problems!
  • Learn more advanced topics
View Curriculum
  • Desire to learn
  • The basic syntax of C or C++

Are you preparing for the Technical Job Interview? I'm creating a new course exactly for that and all my students will get it for FREE by the end of this year. Get this course and you'll all get the next one!

***Big update in May 2017 - Dynamic programming***

  • Fibonacci sequence
  • Dynamic programming
  • How to spot recurrence relations?
  • 0/1 Knapsack problem
  • Stack
  • Check parenthesis expression
  • Queue

"I learned a lot of things from this course. The GOLD trick was awesome." Arpan P.

"I started thinking about problems in a more efficient way..." Mokshagna S.

"It's deep, rich in information, consistent and dense" Laurentiu M.

"It's a very good course, it focuses on building your concept." Saransh S.

"Awesome, it's just awesome" Yazan R.

I'm a competitive programmer, World Finalist in Google HashCode algorithmic challenge, and a 3x Gold Medalist in the Computing Olympiad C/C++. You will learn fundamentals Algorithms & Data structures fast and the knowledge will resist because I teach you using visual examples.

You will get my advice every time you need it! Just message me.

If you know the basics of C++, this course suits you perfectly !

I've designed this course to take you down a guided learning path. You will find some GOLD tricks sprinkled throughout the course that will help you become an algorithmic ninja!

What can you take from me ?

I have spent 5 years of my life learning this topic by myself. You have the possibility to take my knowledge for granted! I'm teaching in the way I learnt: with illustration and examples.

My Promise to You

Algorithms and Data structures brought me success and immense satisfaction. I created this course to share my knowledge with you because I love this topic and I promise to teach you with enthusiasm! If you need support, I will be just a message away.

My Approach

Practice, practice and more practice. After each lecture, I will guide you to solve little problems! The most important thing you can obtain from this course is to think like a problem solver!

Who is the target audience?
  • You, if you don't know where to start.
  • You, if you watched many YouTube videos without understanding!
  • You, if you want to learn Algorithms & Data Structures fast!
  • You, if you want to solve algorithmic problems!
Students Who Viewed This Course Also Viewed
Curriculum For This Course
38 Lectures
2 Lectures 03:31

Why to do this course? Get the motivation to finish it.

Preview 01:47

Have a view over the curriculum (which became bigger over time). Please set the video quality to 720p.

Curriculum overview & Video quality
Getting started
4 Lectures 07:44

Install the developing environment. You can use any other IDE that support C++11, such as Visual Studio.

Installing IDE: Codeblocks

I'll show you how to create a project to write your code.

Creating a project

How to prepare for the coding interview?
Building a strong foundation
26 Lectures 02:12:25

Tired of writing redundant code? Learn to use Standard Template Library (or STL), which is a collection of functions embedded into C++.

What is STL ?

Understanding the differences between Global and Local variable is crucial in order to become a professional programmer. This lecture will give you a deeper insight about them.

Global/Local variables: Part one

Go deeper into the differences between local and global variables.

Global/Local variables: Part two

Global/Local variables
3 questions

You will understand everything about variables. It will help you also with other programming languages.

Global/Local variables: Part three

Learn how to debug effectively and get rid of bugs.

Preview 07:36

The bigger the complexity, the slower the algorithm. You will be able to classify algorithms based on Big O complexity notation! 

 I am sure this lecture will give you the 'aha, I got it now' sensation.

Preview 09:50

Complexity analysis
3 questions

Learn to use appearance array. Later you'll extend the principle to hashmaps and dictionaries. 

Appearance array

Learn one of the quickest way to sort small inputs.


Understand how to use Stacks properly. It has a complexity of O(1) which makes it useful for many applications.

Preview 06:20

How can you better practice using a stack than checking a parenthesis expression ?

PRACTICAL EXERCISE: Check parenthesis expression

What is a queue? It's like a queue of people waiting somewhere.

People that come will stay in the back of the queue, and people can go out the queue from the front.

So in a queue you can add elements from one end, called back, and remove from the other end, called front.

Every operation on a queue executes in O(1).



You will learn the principle behind binary search and understand how it works. You will also learn how to calculate binary search complexity.

Binary search

This is the solution to the previous exercise. Very nice trick to put in your repertoire!

Preview 05:24

You will some one of the most common interview question using binary search.

Finding first or last occurrence of a number


You will some one of the most common interview question using binary search.

PRACTICAL EXERCISE - Number of occurrences

You will learn how to sort small inputs.

Basic sorting

Sorting from STL is fast and easy to implement. You will learn how to use it effectively, sorting in the way you need.

Fast sorting: Sort from STL

You will understand how to find the majority element using a super-trick :).

PRACTICAL EXERCISE: Majority element

Data structures are very handy in real world situations. You will understand how they work and where you can use them.

Data structures: Part one

You will go deeper into Data structures.

Data structures: Part two

Constructors are useful in programming real world applications.

Constructors: Part one

Polish you understanding about constructors.

Constructors: Part two

Sorting arrays in a custom order is crucial in order to become a problem solver! I am sure you will find this lesson easy to understand.

Sorting structures
Dynamic programming
4 Lectures 38:19

Fibonacci sequence is found all over nature. You will find out how it relates to programming.

Preview 03:56

What is dynamic programming? How does dynamic programming really work? You will be able to answer those questions.

Dynamic programming

Understand one of the hardest parts of programming, finding the dynamic programming recurrence.

How to spot recurrence relations?

Solve one of the most famous dynamic programming problems. It is extended in many other applications.

0/1 Knapsack problem
Becoming a PRO
2 Lectures 12:45

This lesson represents a step-by-step guide to solving algorithmic problems. You will acquire professional level skills that will make you stand out from the crowd!

Most people think that the first idea that comes to mind it's good enough for solving a problem. You will master finding solutions after this lecture!

Finding the ideal complexity

About the Instructor
Andrei Margeloiu
4.3 Average rating
495 Reviews
8,113 Students
1 Course
Google HashCode World finalist, 3x Gold medalist

In 2017 he ranked 1st out of UK universities in the Google HashCode worldwide algorithmic competition and participated in the World Finals at Google Paris HQ.

Andrei is a competitive programmer who has learnt C++ from scratch, and in the first year, he won the prestigious Gold Medal in the Computing Olympiad!

In the next years, he has become one of the most award-winning students in his generation, winning a total of 3 Gold Medals out of 4 possible! He has a deep understanding of C++ principles, algorithms and data structures. He has solved more than 1000 competitive problems, and he has even built a program that simulates an online shop deliveries using drones!

Andrei has helped more than 7000 students to learn Algorithms & Data structures from scratch! He loves to explain in the way he wished he has been taught! As he was thinking of becoming a teacher, he dives deep to the core principles, crack hard problems in small pieces that can be understood quickly and finally explain the logic behind the program. By joining him, you will not only become fluent in C++, but you will develop a real programmer logic and be able to switch rapidly to other programming languages!

Now, Andrei is studying Computer Science at the prestigious University College London to dive further into this amazing field!

Join him on this incredible journey and discover Algorithms & Data structures!