Algorithms and Data Structures Made Easy in Java
4.6 (16 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.
124 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Algorithms and Data Structures Made Easy in Java to your Wishlist.

Add to Wishlist

Algorithms and Data Structures Made Easy in Java

Focused on the most commonly asked interview questions. Get better and be prepared.
4.6 (16 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.
124 students enrolled
Created by Marcos Costa
Last updated 5/2017
English
Current price: $10 Original price: $75 Discount: 87% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 34 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Write Algorithms and Data Structures with confidence
  • Understanding what Algorithms and Data Structures are well enough to explain on a white board
  • Think out of the box when solving daily problems
  • Understand the importance of unit testing your application
  • Get a basic understanding of Maven
  • Learn how recursion works
  • Learn the most popular Algorithms and Data Structures
  • Practice with some interview coding questions
  • Code a Sudoku solver
View Curriculum
Requirements
  • basic understanding of if/else, for and while loops in any language
Description

On this course Algorithms and Data Structures you will learn and code Euclid, Linear Search, Insert Sort, Binary Search, Quick Sort

also Binary Tree, Linked List, Doubly Linked List, Prefix Tree or Trie Tree, Stack

and finally some coding interview questions Print Odd Numbers, Longest Substring Without Repeating Character (Amazon Question), Sudoku (Amazon Question)

This is not just one of the most feared subjects in the computer science world but it is also one of the hottest topics. Algorithms and Data Structures are very important topics since your choice of algorithm and datastructure will affect memory and CPU time differently.

This topic will also help your daily coding as it did to me. There are hundreds of different algorithms and data structures but we will cover just a few of the most popular and one that might help you on your current project. 

This course will get you ready to code and eager to learn more.

It is priceless to have the confidence to show off your skills without fear. You will be able to prove in a whiteboard interview that you are not just good but you are awesome.

Enjoy

Who is the target audience?
  • This course was designed for Developers that want to learn more about Algorithms and Data Structures
  • Java developers that are preparing for a technical interview
  • Developers from any language that understands Java
  • If you want to get better and improve your skills
Students Who Viewed This Course Also Viewed
Curriculum For This Course
49 Lectures
07:19:28
+
Get Started
4 Lectures 28:44

We will get Eclipse downloaded and installed so we can start coding our exercises. 

Preview 02:02

At the end of this lecture you will have a maven project created with JUNIT dependency ready to work.

You will also have a basic understanding of what maven is and how it works. 

Creating Maven project with JUNIT dependency
01:31

At the end of this lecture you will understand what is JUNIT and how to write a JUNIT.

Learning unit test with JUNIT
10:07

It will be easier to show how recursion works implementing an algorithm. We will implement Euclid's algorithm. I incentive you to write the code a few times then it will get stuck on your mind and easier to write and explain.

At the end of this lecture you will be able to write Euclid's algorithm and be able to explain if someone aske you this question. 

Euclid's algorithm with Recursion
15:04
+
Algorithms
14 Lectures 01:53:42

On this video you will learn Linear Search algorithm.


Linear Search Introduction
02:21

This lecture will teach you how to code a Linear Search. You will understand how it works and we will code it from scratch.

Linear Search Coding
04:47

On this video we will create a unit test for the Linear Search algorithm. We will test the code that we just wrote on the previous lecture.

I will also exhaust a little bit about JUNIT debugging and explaining in detail how you run multiple unit test at once and check which tests worked and which tests failed.

Unit Testing Linear Search with JUNIT
07:40

After this class you will understand how Insert Sort algorithm works.

Insert Sort Introduction
04:17

After this lecture you will be able to understand and code an Insert Sort algorithm.

Insert Sort Coding
09:49

After this lecture you will test and play with the results of the InsertSort class that we created on the lecture 9. We will use a new Assertion to test the arrays. We will also use a toString from the java.util.Arrays class to help us illustrate what our code is doing.

Unit Testing Insert Sort with JUNIT
14:50

After this lecture you will understand what is Binary Search Algorithm and how it works.

Preview 03:31

On this lecture you will learn how to code a Binary Search Algorithm. This will be coded using a non recursive way and after unit testing we will code using recursion.

Binary Search Coding
13:08

On this lecture we will unit test our Binary Search Algorithm coded on the previous lecture. We will also add some code to demonstrate what the code is doing and how many iterations are happening for the search to be completed.

Unit Testing Binary Search with JUNIT
11:23

On this lecture you will learn how to code the Binary Search Algorithm using recursion. We will also explore the differences between the two classes (non using recursion and using it)

Binary Search using recursion
08:17

On this lecture we will test the Binary Search Algorithm written using recursion. More important we will quickly debug and show the recursive calls happening.

Unit Testing Binary Search using recursion
04:37

After this lecture you will understand what is Quick Sort Algorithm and how it works.

Quick Sort Introduction
05:31

On this lecture you will learn how to code a Quick Sort Algorithm. It will be coded using recursion. Each functionality will be explained and we will go through some more detail over the next lecture while unit testing.

Quick Sort Coding
14:22

On this lecture we will test the Quick Sort Algorithm written using recursion. We will quickly debug the code to understand a little better.

Preview 09:09
+
Data Structures
20 Lectures 03:06:28

After this lecture you will have a clear understanding of what is a BinaryTree and how it works.

Binary Tree Introduction
04:10

On this lecture you will learn how to code a BinaryTree. We will also implement pre and post order traversal of the tree to print the elements in sort ordered or reverse ordered. We will use recursion.

At the end you will understand what it is and how to code it.

Binary Tree Coding
13:36

On this lecture we will test the BinaryTree coded using recursion. We will quickly debug the code to understand a little better.

We will also use the library from Apache common lang to use ArrayUtils

Unit Testing Binary Tree with JUNIT
18:00

After this lecture you will understand what is a Linked List and how it works.

Linked List Introduction
03:32

On this lecture you will learn how to implement a LinkedList.

Preview 10:36

On this lecture we will test the LinkedList created on the previous lecture. We will also debug to have a better understanding of the code.

Unit Testing Linked List with JUNIT
06:31

After this lecture you will understand what is a DoublyLinkedList and what is the difference between DoublyLinkedList and LinkedList and you will also be able to understand how it works.

Doubly Linked List Introduction
02:21

On this lecture you will code and understand line by line what happens on this implementation of the DoublyLinkedList.

Doubly Linked List Coding part 1 of 2
10:49

We will develop the remove method and as an nice extra we will override the toString method to get a nice String when we print our DoublyLinkedList

Doubly Linked List Coding part 2 of 2
15:05

On this lecture we will unit test our DoublyLinkedList methods add and remove. We will also see the result expected by the toString that we implemented.

Unit Testing Doubly Linked List with JUNIT
11:01

After this lecture you will understand what is a Prefix or Trie Tree and you will also be able to understand how it works.

Prefix Tree Introduction
04:33

On this lecture you will learn how to code a Prefix or Trie Tree and we will implement the insert method which will break a String into the nodes of the tree. The search method will be implemented on the next lecture so you can have some time do drink some water.

Prefix Tree Coding part 1 of 2
17:19

On this lecture you will learn how to implement the search method of a Prefix or Trie Tree

Prefix Tree Coding part 2 of 2
05:08

On this lecture we will test the Prefix or Trie Tree implemented on the last two lectures. We will also debug the insert method so you have a better understanding of what it is doing and how it is actually working. I broke the test in two parts to make is easier to understand.

Unit Testing Prefix Tree with JUNIT part 1 of 2
10:42

On this lecture we will test the Prefix or Trie implemented on the lectures 30th and 31st and we will also debug the search method so you have a good understanding of what it is doing and how it is actually working.

Unit Testing Prefix Tree with JUNIT part 2 of 2
11:24

On this lecture you will understand what is a Stack and how it works.

Stack Introduction
03:19

On this lecture you will learn how to implement a Stack and this implementation will be using Object as the object being stored. The next lecture we will refactor this code to implement generics.

Stack Coding
14:13

On this lecture we will test the Stack implemented on the previous lecture and we will also debug so you have a better understanding of what it is doing and how it is actually working. A refactor using Generics will be done on the next lecture.

Unit Testing Stack with JUNIT
10:11

On this lecture we will refactor the stack developed on the previous lecture and refactor to implement generics

Stack Coding with Generics
03:35

On this lecture we will test the Stack with Generics implemented on the previous lecture and we will also debug so you have a better understanding of what it is doing and how it is actually working.

Unit Testing Stack Generics with JUNIT
10:23
+
Interview Coding questions
11 Lectures 01:50:34

On this lecture we will code the interview question to print the odd numbers. We will also implement a second way to the problem.

Print odd numbers
09:18

On this lecture we will unit test the print odd numbers interview question. We will also debug and do a small refactor to make it fancier and cleaner.

Unit testing Print odd Number with JUNIT
08:12

On this lecture you will understand what is this question all about and how we are going to proceed to implement it on the next lecture.

Longest substring without repeating character Introduction (Amazon question)
04:17

On this lecture we will implement this interview question that returns the number of characters and comment through the code.

Longest Substring without repeating character Coding 1 of 2
12:28

On this lecture we will refactor the code implemented on the previous lecture to also make available the sequence of characters and not just the count. We will also comment as we code for you to have a better understanding.

Longest Substring without repeating character Coding 2 of 2
09:45

On this lecture we will unit test our interview exercise find the longest substring without repeating characters. We will also debug the code to get it in a bit more detail 

Unit testing Longest substring without repeating character with JUNIT
12:51

On this lecture you will understand what is this question all about and how we are going to proceed to implement it on the next lecture.

Sudoku Introduction (Amazon Question)
03:28

Sudoku was broken in two coding parts to make it easier for you. On this lecture we will implement the first part of the Sudoku interview question and comment through the code.

Sudoku coding part 1 of 3
19:56

On this lecture we will implement the second part of the Sudoku interview question and comment through the code. We will implement all the methods necessary to have the solve method working properly.

Sudoku coding part 2 of 3
11:15

On this lecture we will create unit test for all the methods that we developed to have the sudoku working. We will test solve and printMe on the next lecture.

Sudoku coding part 3 of 3 Unit Testing methods
12:44

On this lecture we will test the solve method, debug through the code and check the output using the printMe method implemented.

Unit Testing Sudoku with JUNIT
06:20
About the Instructor
Marcos Costa
4.7 Average rating
24 Reviews
614 Students
3 Courses
Tech Lead Engineer

Passionate about developing software and learning new things. I am always learning. I've being developing software for the past 17 years and I am still in love with it. I am originally from Brazil, Moved to Australia for work and currently I am living in America. I have a one year old son and a beautiful wife that supports me on my long hours of work and crazy journeys on new businesses. She also supports me on my craziness for buying stuff online to make some of my inventions to install on my car.

Of course I have a few hobbies besides development that are cars, adrenaline sports and cooking.

"If you don't know how to do something then learn and do it anyway"
"Always improve yourself" 

I hope you enjoy my courses.