Skip to main content

Data Structures and Algorithms: Deep Dive Using Java

15h 53m 4s
English
Paid

Embark on a comprehensive journey into the world of data structures and algorithms using Java. If you've mastered the basics and are now looking for a deeper dive, this course is designed for you. It's not just about passing job interview tests but about making informed choices that enhance your program development skills through implementation.

Course Overview

Are you aiming to transition from a junior programming role to a senior position? Elevate your skill set with advanced concepts in data structures that you can directly apply to your projects. This course is for those who seek in-depth understanding rather than just theoretical knowledge.

The course includes complete source code for you to download, offering a hands-on experience focused on implementation. If your goal is to dive deep into understanding and applying these concepts, this course is exactly what you need.

Topics Covered

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

The course also extensively covers the tools available in the JDK, providing valuable insights for those eager to understand the internal workings of these elements.

The Importance of Data Structures and Algorithms

Why focus on these areas? Because mastering data structures and algorithms will enhance your problem-solving skills and make you a better programmer.

These tools are vital patterns for solving complex problems. Expanding your understanding of them ensures you use the most suitable tools in a more sophisticated manner, helping you tackle challenges more effectively.

Why Choose This Course?

Led by instructor Sarah Ettritch, who boasts over 25 years of software development experience and has been using Java since JDK 1.1, this course is taught by someone deeply knowledgeable in data structures and algorithms. Her experience in creating developer tools showcases her capability to teach this course with authority.

Unlike many other courses that concentrate solely on theory for interview preparation, this course combines essential theoretical knowledge with a strong focus on practical implementation. You'll gain a genuine understanding that you can apply to future projects.

Benefits at the Course's End

By completing this course, you will gain a robust grasp of both the theory and implementation of data structures and algorithms. Enhance your job or consulting prospects by acquiring these in-demand skills that significantly increase your market value as a Java developer.

Kickstart your journey towards a higher-paying job or attractive consulting roles by enrolling now.

Course Requirements

Requirements:
  • Prior experience with an object-oriented programming language, preferably Java, but any OO language is acceptable.

Target Audience

Who this course is for:

  • Developers familiar with Java (or another OO language) who want to delve deeply into data structures and algorithms.

Learning Outcomes

What you'll learn:

  • Identify the strengths and weaknesses of various data structures to make optimal choices for your applications.
  • Implement each data structure to comprehend their internal workings.
  • Understand common algorithms for sorting data, enhancing application efficiency with large datasets.
  • Explore what the JDK offers for data storage and sorting, saving time and resources.

About the Author: udemy

udemy thumbnail
By connecting students all over the world to the best instructors, Udemy is helping individuals reach their goals and pursue their dreams. Udemy is the leading global marketplace for teaching and learning, connecting millions of students to the skills they need to succeed. Udemy helps organizations of all kinds prepare for the ever-evolving future of work. Our curated collection of top-rated business and technical courses gives companies, governments, and nonprofits the power to develop in-house expertise and satisfy employees’ hunger for learning and development.

Watch Online 113 lessons

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
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