Data Structures and Algorithms: Deep Dive Using Java

15h 53m 4s
English
Paid

Course description

So you've worked with the basics of data structures and algorithms in Java (or another OO programming language) but feel like you need a deeper knowledge of how things work. Maybe you have taken other courses on this topic that focus more on teaching how to pass job interview tests (theory) instead of how to make good choices for the programs you develop (implementation).

Read more about the course

Or maybe you are ready to move from a junior programming position to a more senior one and need to get skilled in advanced concepts like data structures, and how to apply them to your own projects.

Whatever the reason, if you are looking for a course that focus on the implementations to give you a complete understanding of how things work, then this is the course for you.

This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered. 

Complete source code is included and available for you to download.

This is a hands-on course!  If you want to try understand things at a deep level, and work on implementations, rather than theory, then again, this is the course for you.

Topics covered:-

Arrays
Linked Lists
Trees
Hashtables
Stacks
Queues
Heaps
Sort algorithms
Search algorithms

The course also spends more time than most other courses of its kind looking at what’s available in the JDK. Students wanting to understand how things work "under the hood" will benefit enormously from this course.

Why learn about data structures and algorithms?

The reality is, the more you learn about data structures and algorithms, the better a programmer you become.

Why?

Because, data structures and algorithms are effectively patterns for solving problems.   You want to add as many of them as you can to your skill-set.  By doing so, you will find you solve more problems, and use the right tools for the job, in a more elegant way.  And you will learn a heap of them in this course.

Why enrolling in this course is the best decision you can make.

Your instructor, Sarah Ettritch has over 25 years’ software development experience and has been working with Java since JDK 1.1.  She has spent many years creating tools used by developers, which required a deep knowledge of data structures and algorithms, and is perfectly qualified to teach this course.

Most courses focus on giving you the theory of how things work, so that you can take an interview.  Whilst the theory is important, the knowledge of how to implement these data structures and algorithms are of vital importance.

This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered.   The main focus of the course is to give you a real understanding of how things work under the hood, so that you can apply this to future programming projects.

If you want to actually understand how things work, and be able to take that understanding and apply it to your own programs, then this course is for you.

After completing this course, you will have a solid understanding of data structures and algorithms (both the theory, and the implementation).

The sooner you sign up for this course, the sooner you will have the skills and knowledge you need to increase your job or consulting opportunities.    Java developers with key skills and understanding of data structures and algorithms are in high demand and get paid extremely well.

If you are ready for that new job promotion or consulting opportunity, it's time to get started.

Requirements:
  • Previous experience with an object-oriented programming language, preferably Java (but any OO language is fine).

Who this course is for:

  • Developers who have some knowledge of Java (or another OO language) looking to understand data structures and algorithms at a deep level

What you'll learn:

  • Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications
  • Code an implementation of each data structure, so you understand how they work under the covers
  • Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets
  • Learn what’s available in the JDK for storing and sorting data, so you won’t waste time reinventing the wheel

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 113 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Data Structures and Algorithms: Deep Dive Using Java

0:00
/
#1: Introduction to the Course

All Course Lessons (113)

#Lesson TitleDurationAccess
1
Introduction to the Course Demo
03:43
2
JDK8 for Windows
05:16
3
JDK8 for MAC
02:45
4
JDK8 for Linux
04:21
5
IntelliJ for Windows
09:55
6
IntelliJ for MAC
09:44
7
IntelliJ for Linux
10:23
8
Introduction to Data Structures
02:54
9
Introduction to Algorithms
04:16
10
Introduction to Arrays
00:54
11
Big-O Notation
14:10
12
A Quick Review of Arrays in Java
07:43
13
Arrays in Memory
09:03
14
Big-O Values for Array Operations
11:57
15
Introduction to Sort Algorithms
01:04
16
Bubble Sort (Theory)
08:51
17
Bubble Sort (Implementation)
11:35
18
Stable vs. Unstable Sort Algorithms
04:43
19
Selection Sort (Theory)
06:34
20
Selection Sort (Implementation)
05:03
21
Insertion Sort (Theory)
07:35
22
Insertion Sort (Implementation)
07:13
23
Shell Sort (Theory)
12:55
24
Shell Sort (Implementation)
10:50
25
Recursion
18:11
26
Merge Sort (Theory)
20:41
27
Merge Sort (Implementation)
28:10
28
Quick Sort (Theory)
08:59
29
Quick Sort (Implementation)
12:35
30
Counting Sort (Theory)
07:57
31
Counting Sort (Implementation)
08:36
32
Radix Sort (Theory)
11:13
33
Stable Counting Sort (Theory)
13:19
34
Radix Sort (Implementation)
14:06
35
Sorting Arrays Using the JDK
07:01
36
Sort Algorithms Challenge #1
01:12
37
Sort Algorithms Challenge #1 Solution
04:04
38
Sort Algorithms Challenge #2
00:50
39
Sort Algorithms Challenge #2 Solution
11:47
40
Sort Algorithms Challenge #3
01:13
41
Sort Algorithms Challenge #3 Solution
09:50
42
Introduction to Lists
02:50
43
Abstract Data Types
02:57
44
Array Lists
23:57
45
Vectors
06:49
46
Singly Linked Lists (Theory)
06:43
47
Singly Linked Lists (Implementation)
17:40
48
Doubly Linked Lists (Theory)
09:35
49
Doubly Linked Lists (Implementation)
21:48
50
The JDK LinkedList Class
12:35
51
Linked Lists Challenge #1
01:37
52
Linked Lists Challenge #1 Solution
09:30
53
Linked Lists Challenge #2
01:47
54
Linked Lists Challenge #2 Solution
07:32
55
Introduction to Stacks
00:39
56
Stacks (Theory)
07:23
57
Stacks Implementation (Array)
18:32
58
Stacks Implementation (Linked List)
12:00
59
Stacks Challenge
02:04
60
Stacks Challenge Solution
08:26
61
Introduction to Queues
00:27
62
Queues (Theory)
03:39
63
Queues (Array Implementation)
15:50
64
Circular Queue Implementation (Part One)
14:22
65
Circular Queue Implementation (Part Two)
20:32
66
Queues and the JDK
08:21
67
Queues Challenge
01:59
68
Queues Challenge Solution
08:53
69
Introduction to Hashtables
00:24
70
Hashtables (Theory)
08:26
71
Hashtables (Array Implementation)
13:54
72
Linear Probing
21:15
73
Linear Probing - Removing Items
09:40
74
Linear Probing - Rehashing
11:04
75
Chaining
21:25
76
Hashtables and the JDK
16:53
77
Bucket Sort (Theory)
06:36
78
Bucket Sort (Implementation)
09:05
79
Hashtables Challenge #1
01:55
80
Hashtables Challenge #1 Solution
02:40
81
Hashtables Challenge #2
01:38
82
Hashtables Challenge #2 Solution
07:56
83
Introduction to Search Algorithms
00:51
84
Linear Search Algorithm
03:52
85
Binary Search Algorithm
07:58
86
Binary Search (Implementation)
13:13
87
Introduction to Trees
00:56
88
Trees (Theory)
11:17
89
Binary Search Trees (Theory)
14:18
90
Binary Search Trees (Insertion)
10:51
91
Binary Search Trees (Traversal)
11:25
92
Binary Search Trees (Get, Min, Max)
10:29
93
Binary Search Trees (Delete Cases 1 and 2)
03:16
94
Binary Search Trees (Implement Cases 1 and 2)
09:12
95
Binary Search Trees (Delete Case 3)
08:52
96
Binary Seach Trees (Implement Case 3)
07:17
97
Trees and the JDK
03:45
98
Binary Search Trees Challenge #1
01:54
99
Binary Search Trees Challenge #1 Solution
02:50
100
Binary Search Trees Challenge #2
09:18
101
Introduction to Heaps
00:30
102
Heaps (Theory)
07:51
103
Storing Heaps as Arrays
07:55
104
Heaps (Insert)
09:03
105
Heaps (Delete Theory)
06:56
106
Heaps (Delete)
20:07
107
Heaps (Peek)
05:20
108
Priority Queues
12:01
109
Heapsort (Theory)
04:55
110
Heapsort (Implementation)
07:17
111
Sets
02:52
112
Course Wrap-Up
01:25
113
Bonus - Please Watch!
00:49

Unlock unlimited learning

Get instant access to all 112 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Java Design Patterns & SOLID Design Principles

Java Design Patterns & SOLID Design Principles

Sources: udemy
This course starts with SOLID Design Principles in Java. It will then provide a comprehensive introduction to Java Design patterns with practical, hands on exercises. This cour...
17 hours 5 minutes 6 seconds
Algorithms in Java: Live problem solving & Design Techniques

Algorithms in Java: Live problem solving & Design Techniques

Sources: udemy
Algorithm Design Techniques: Live problem-solving in Java. Algorithms are everywhere. One great algorithm applied sensibly can result in a System like GOOGLE! C
19 hours 41 minutes 26 seconds
Ultimate Java Part 2: Object-oriented Programming

Ultimate Java Part 2: Object-oriented Programming

Sources: codewithmosh (Mosh Hamedani)
Heard about object-oriented programming, but not sure what it is? Object-oriented programming (OOP) is a popular style of programming. It comes up in technical interviews often ...
3 hours 41 minutes 47 seconds
Data Structures in Java

Data Structures in Java

Sources: javaspecialists.eu
Data Structures in Java (Late 2017 Edition) is an action-packed 8 hours of tips and tricks that professional Java programmers have used for the past 20 years to produce code tha...
8 hours 3 minutes 54 seconds
Testing Java with JUnit 5 & Mockito

Testing Java with JUnit 5 & Mockito

Sources: udemy
Unit Testing is a must-have skill and this video course is about unit testing. If you take this video course, you will learn how to test your Java code using JU
7 hours 41 minutes 22 seconds