
Introduction to the Algorithms and Data Structures course
Before starting the classes I will give you some tips to get the most out of this course
In this class I will propose a simple exercise that will force you to think of an ingenious solution. This type of situation will initiate your development of programming logic.
The code for this class is at the end of the section
In this class we continue developing algorithms based on the previous class.
The code of this class is at the end of the section
In this class we develop more complicated algorithms and at the same time I recommend some websites where you can learn from the code of other professional experts.
The code of this class is at the end of the section
In this class we finish making our own algorithms for mathematical calculations.
The code for this class is at the end of the section
In this class we will see how a known exercise can be VERY MUCH optimized. Here you will acquire the essential habit of optimization.
The code for this class is at the end of the section
In this class we create an algorithm to solve a problem of higher complexity.
The code of this class is at the end of the section
Part 1 of how to debug an algorithm.
In this class we advance in the difficulty of the algorithms while I explain how to debug the code by inspecting the elements step by step.
The code for this class is at the end of this section.
Part 2 of how to debug an algorithm.
In this class we advance in the difficulty of the algorithms while I explain you how to debug the code by inspecting the elements step by step.
The code for this class is at the end of this section.
Here you have the code used throughout the classes in this section.
Global overview of Data Structures that will be developed throughout the rest of the specific sections
In this video I show you additional structures that exist in C++, in this case STRUCT, as well as examples of use and explanation of its characteristics.
The code of this class is at the end of this section.
In this video I show you additional structures that exist in C++, in this case UNION, as well as examples of use and explanation of its characteristics.
The code of this class is at the end of the section
In this video I show you additional structures that exist in C++, in this case ENUM, as well as examples of use and explanation of their characteristics.
The code of this class is at the end of this section.
Here you have the code used throughout the classes in this section.
The first type of Data Structure we are going to see is the array or array. In this class we will see how they work, how to store information in them, how to traverse their elements and search for information stored inside.
The code of this class is the following:
void showItems() {
int train[6];
train[0] = 10;
train[1] = 20;
train[2] = 30;
train[3] = 40;
train[4] = 50;
train[5] = 60;
for (int i = 0; i < 6; i++) {
cout << "In the position " << i << " the value is " << train[i] << endl;
}
int array[5] = { 3, 6, 1, -8, 2 };
for (int i = 0; i < 5; i++) cout << "The item " << i << " is " << array[i] << endl;
}
void searchItem() {
int array[5] = { 3, 6, 1, -8, 2 };
int target = -8;
for (int i = 0; i < 6; i++) {
if (target == array[i]) cout << "eureka!!! in position " << i << endl;
}
}
In this class I will explain you how to create dynamic arrays to make memory reservation at runtime with the specified size.
The code of this class is at the end of the section
Part 1 on Character Strings
Character strings behave like arrays, so in this section you will have this video with some basic string handling functions as well as explaining how this type of data acts like an array.
The code for this class is at the end of the section.
Part 2 on Character Strings
Character strings behave like arrays, so in this section you will have this video with some basic string handling functions while I explain how this type of data acts like an array.
The code for this class is at the end of the section.
Part 3 on Character Strings
Character strings behave like arrays, so in this section you will have this video with some basic string handling functions while I explain how this type of data acts like an array.
The code of this class is at the end of this section.
Here you have the code used throughout the classes in this section.
Before explaining each of the algorithms we will see, we will have an overview of this section. In this class we will talk about why sorting algorithms are important and we will make a comparison between them.
In this class I will explain the logic behind the Bubble Sort algorithm to help you understand this sorting method. After watching this video I encourage you to try to code the algorithm. And then in the next class you will be able to check how I have done it. In this way you can test your skills and perfect your ability to convert logical thinking about solving a problem into code.
In this class we will see the code implementation of the BubbleSort algorithm with the exact explanation of what each line and element of the code does (part 1).
The code of this class is at the end of the section
In this class we will see the code implementation of the Bubble Sort algorithm with the exact explanation of what each line and element of the code does (part 2).
The code of this class is at the end of the section
In this class I will explain the logic behind the Selection algorithm so that you can understand this sorting method. After watching this video I encourage you to try to code the algorithm. And then in the next class you will be able to check how I have done it. In this way you can test your skills and perfect your ability to convert logical thinking about solving a problem into code.
Code Implementation of Algorithm by Selection Part 1
In this class we will see the coding step of the Selection algorithm with the exact explanation of what each line and element of the code does.
The code of this class is at the end of the section
Code Implementation of Algorithm by Selection Algorithm Part 2
In this class we will see the code step of the Selection algorithm with the exact explanation of what each line and code element does.
The code for this class is at the end of the section
In this class I will explain the logic behind the Insertion algorithm so that you can understand this sorting method. After watching this video I encourage you to try to code the algorithm. And then in the next class you will be able to check how I have done it. In this way you can test your skills and perfect your ability to convert logical thinking about solving a problem into code.
Code Implementation of the Insertion Algorithm Part 1
In this class we will see the code step of the Insertion algorithm with the exact explanation of what each line and element of the code does.
The code of this class is at the end of this section.
Part 2 of Code Implementation of the Insertion Algorithm
In this class we will see the code step of the Insertion algorithm with the exact explanation of what each line and element of the code does.
The code for this class is at the end of this section.
Something very important in the analysis of an algorithm is the time it takes to execute the code and solve the situation for which it is designed. In this video I will explain how to measure the execution time.
The code for this class is at the end of this section.
Part 1 of the Creating Your Own Sorting Algorithm Project
In this video I will explain the algorithm I have personally developed for sorting data and the corresponding implementation in code.
Please try to create your own algorithm and share your code! :)
The code of this class is at the end of the section
Part 2 of Creating Your Own Sorting Algorithm Project
In this video I will explain the algorithm I have personally developed for sorting data and the corresponding implementation in code.
Please try to create your own algorithm and share your code! :)
The code of this class is at the end of the section
Part 3 of Creating Your Own Sorting Algorithm Project
In this video I will explain the algorithm I have personally developed for sorting data and the corresponding implementation in code.
Please try to create your own algorithm and share your code! :)
The code for this class is at the end of this section.
Before closing the algorithms section I give you some tips to further develop your programming skill
Here is the code used throughout the classes in this section
In this class I will teach you the step-by-step process of recursion and mandatory conditions that you have to fulfill for a good development of this type of functions.
Recursion Basic Level Part 1
In this class we will see a very simple example of recursion to understand this concept well and not to get confused with secondary factors. That way and with the graphical representation of the process you will be ready to see more complicated examples of recursion.
The code for this class is at the end of this section.
Recursion Basic Level Part 2
In this class we will see a very simple example of recursion to understand well this concept and not to confuse us with secondary factors. That way and with the graphical representation of the process you will be ready to see more complicated examples of recursion.
The code of this class is at the end of the section
In this class I exemplify a problem solved with recursion, explained phase by phase and with code initially more readable and later optimized.
The code of this class is at the end of this section.
Part 1 of Recursion Advanced Level (Towers of Hanoi explained in detail)
In this video we will see the explanation of an advanced use of recursion. The towers of Hanoi has always been a sample of them but not always fully understood. Here you will have the detailed explanation
The code for this class is at the end of the section
Part 2 of Recursion Advanced Level (Towers of Hanoi explained in detail)
In this video we will see the explanation of an advanced use of recursion. The towers of Hanoi has always been a sample of them but not always fully understood. Here you will have the detailed explanation
The code for this class is at the end of the section
Part 3 of Recursion Advanced Level (Towers of Hanoi explained in detail)
In this video we will see the explanation of an advanced use of recursion. The towers of Hanoi has always been a sample of them but not always fully understood. Here you will have the detailed explanation
The code of this class is at the end of this section.
Here you have the code used throughout the classes in this section.
In this video I show you an overview of what we will see in this complete section on Matrices
Part 1 of Static Matrices. Real examples of use
In this video I will show you the most basic implementation of a matrix, the data handling and the very powerful real life use of this data structure applied, for example, to the world of game development.
The code of this class is at the end of section
Part 2 of Static Matrices. Real examples of use
In this video I will show you the most basic implementation of a matrix, the data handling and the very powerful real life use of this data structure applied, for example, to the world of game development.
The code of this class is at the end of section
Part 3 of Static Arrays. Real examples of use
In this video I will show you the most basic implementation of a matrix, the data handling and the very powerful real life use of this data structure applied, for example, to the world of game development.
The code of this class is at the end of the section
Part 1 of Matrix Index Management (Exercise) - Part 1
In this video we will do an exercise with arrays to master the use of indexes.
The code of this class is at the end of the section
Part 2 of Matrix Index Manipulations (Exercise)
In this video we will do an exercise with matrices to master the use of indexes.
The code of this class is at the end of the section
Part 3 of Index Manipulations of Arrays (Exercise)
In this video we will do an exercise with matrices to master the use of indexes.
The code for this class is at the end of this section.
Part 1 of Dynamic Matrices
In this video you will learn in a PURE way the concept of dynamic matrices, so that you can create them not only rectangular but adapted to any need and with the concrete size of rows and columns that you want. A COMPLETE explanation that contributes to make this course special and different from others.
The code for this class is at the end of the section
Part 2 of Dynamic Matrices
In this video you will learn in a PURE way the concept of dynamic matrices, so that you can create them not only rectangular but adapted to any need and with the specific size of rows and columns that you want. A COMPLETE explanation that contributes to make this course special and different from others.
The code of this class is at the end of the section
Part 3 of Dynamic Matrices
In this video you will learn in a PURE way the concept of dynamic matrices, so that you can create them not only rectangular but adapted to any need and with the specific size of rows and columns that you want. A COMPLETE explanation that contributes to make this course special and different from others.
The code of this class is at the end of the section
In this video I will explain why it is so important to clear dynamically created memory and how to do it.
Part 1 of MultiDimensional Arrays
In this video I will explain you how to design matrices so that no matter how many dimensions you want to assign to them, you can do it without getting confused, without going crazy and no matter if they are 4, 50 or 2546238 dimensions.
Part 2 of MultiDimensional Matrices
In this video I will explain you how to conceive matrices so that no matter how many dimensions you want to assign to them, you can do it without getting confused, without going crazy and no matter if they are 4, 50 or 2546238 dimensions.
Here you have the code used throughout the classes in this section.
In this video I will show you the logic of a list to understand all the further development of this data structure. I will also mention the different lists that exist and their way of connecting the elements to each other (simple, double linked, simple circular and double linked circular lists).
The code that we will develop during this section is at the end of the section.
Part 1 - Code implementation of a list
In this class we will see how to start the implementation in code of a list by adding elements in a basic way and traversing them to display them on the screen.
The code for this class is at the end of the section.
Part 2 - Code implementation of a list
In this class we will see how to start the implementation in code of a list by adding elements in a basic way and traversing them to display them on the screen.
The code for this class is at the end of this section.
Part 3 of Implementing a list in code
In this class we will see how to start the implementation in code of a list by adding elements in a basic way and traversing them to display them on the screen.
The code for this class is at the end of this section.
Part 1 of Insert element in the list
In this video we will evolve the code that allows to add an element to the list.
The code of this class is at the end of the section
Part 2 of Insert element in list - Part 2
In this video we will evolve the code that allows you to add an element to the list.
The code of this class is at the end of the section
Part 1 of Delete element from a list
In this class we will see how to delete an element in the list and correctly reassign the links between elements to keep the data structure stable.
The code of this class is at the end of the section
Part 2 of Delete element from a list
In this class we will see how to delete an element in the list and correctly reassign the links between elements to keep the data structure stable.
The code of this class is at the end of the section
Part 1 of how to insert element in a specific position
In this class we finish the code of insertion of element in the list allowing the functionality of specifying the position of the new element.
The code of this class is at the end of the section
Part 2 of how to insert element in a specific position
In this class we finish the code of insertion of element in the list allowing the functionality of specifying the position of the new element.
The code of this class is at the end of the section
Here you have the code used throughout the classes in this section.
In this introductory video to the section I explain the logic of a queue to know how to implement in code each functionality of this data structure in the following videos.
The code that we will develop during this section is at the end of the section
Part 1 of Implementation in Code. Inserting and traversing elements
In this video we will see how to add and traverse the elements of a queue.
The code of this class is at the end of section
Part 2 of Implementation in Code. Inserting and traversing elements
In this video we will see how to add and traverse the elements of a queue.
The code of this class is at the end of the section
Part 1 - Delete element and CHALLENGE
In this video we will see how to remove an element from a queue, with a final challenge that you will be able to develop using the concepts explained so far in the course.
The code of this class is at the end of the section
Part 2 - Delete element and CHALLENGE
In this video we will see how to remove an element from a queue, with a final challenge that you will be able to develop using the concepts explained so far in the course.
The code of this class is at the end of this section.
Here you have the code used throughout the classes in this section.
In this introductory video to the section I explain the logic of operation of a stack to know how to implement in code each functionality of this data structure in the following videos.
The code that we will develop during this section is at the end of the section
Part 1 of Implementation in Code. Inserting and traversing elements
In this video we will see how to add and traverse the elements of a stack.
The code of this class is at the end of section
Part 2 of Implementation in Code. Inserting and traversing elements
In this video we will see how to add and traverse the elements of a stack.
The code of this class is at the end of the section
Part 1 of Remove Element and RETO
In this video we will see how to remove an element from a stack, with a final challenge that you will be able to develop using the concepts explained so far in the course.
The code of this class is at the end of the section
Part 2 of Delete Element and CHALLENGE
In this video we will see how to remove an element from a stack, with a final challenge that you will be able to develop using the concepts explained so far in the course.
The code of this class is at the end of this section.
Here you have the code used throughout the classes in this section.
In this Algorithms and Data Structures course you will learn in a basic and very complete way the most elementary notions about these pillars of software development. This course will give a complete tour of all the most basic concepts to learn how to create your own algorithms, thanks to the global vision that you will acquire. In fact throughout the course you will learn how to apply each idea to any programming language.
You will learn fundamental programming skills:
- Elementary Algorithms
- Development of programming logic
- Best practices when writing code
- Optimization of resources, time and operations in an algorithm
- Data Structures implementation in code
In addition you will have downloadable didactic material, advice from my +15 years of programming experience, solved exercises and examples of use for real life situations, so that you understand what logic follows each algorithm and know how to implement it in the language of your choice.
The course is divided into 2 main blocks addressed throughout the different sections:
Algorithms
In this block you will learn how to develop from scratch algorithms to solve problems no matter what programming language or technology you use. We will mainly focus on the development logic so that you will be able to transfer the idea to your own development environment. Therefore, no matter what language you use, the contents of these classes will be totally useful for you.
Among the different algorithms that we will see are included the sorting algorithms with a detailed explanation of how they work and each line and element of the code that they have. Did you know that in this course we will create a sorting algorithm faster than the famous Bubble Sort, Selection or Insertion? If you want to know how to create algorithms with optimization and efficiency in mind...this is the ideal course for you.
Data Structures
In this block you will learn about the different Data Structures that exist, from the most basic to the most complex ones, and both static and dynamic data structures. What is a static data structure? And a dynamic one? What are they for? How to use one or the other? All this is explained in the course.
Did you know that in everyday life there are many situations in which algorithms can be applied to Data Structures? For example in a simple supermarket we find several situations that could be handled with Lists, Stacks and Queues. Precisely in this course we will develop along a complete project, the management of these issues by means of Dynamic Data Structures.
We will develop each one of the functionalities in code explained in detail of the following data structures:
Static and Dynamic Data Structures (Arrays and Multidimensional Arrays).
Linear Dynamic Data Structures (Lists, Stacks and Queues)
Non-Linear Dynamic Data Structures (Trees)
All concepts are explained in detail, step by step and understanding the why of each thing. This way you will be able to grasp a correct foundation on these programming pillars from the very beginning of your professional development. This course will allow you to expand into any area of software development.
Isn't it great? Well, the best of all is that it is at your fingertips.
Buy the course and enjoy all that is waiting for you.
See you soon!
José Javier Villena