## Video Description

Sharpen your problem solving and data organization skills using Java data structures and algorithms

• Explains in detail different algorithms and data structures with sample problems and Java implementations where appropriate
• Includes interesting tips and tricks that enable you to efficiently use algorithms and data structures

In Detail

Learning about data structures and algorithms gives you better insight on how to solve common programming problems. Most of the problems faced every day by programmers have been solved, tried, and tested. By knowing how these solutions work, you can ensure that you choose the right tool when you face these problems.

This course teaches you tools that you can use to build efficient applications. It starts with an introduction to algorithms and big O notation, later explains bubble, merge, quicksort, and other popular programming patterns. You'll also learn about data structures such as binary trees, hash tables, and graphs. The course progresses to advanced concepts, such as algorithm design paradigms and graph theory. By the end of the course, you will know how to correctly implement common algorithms and data structures within your applications.

1. Chapter 1 :
1. Course Overview 00:02:30
2. Lesson Overview 00:01:09
3. Developing Our First Algorithm 00:03:06
4. Measuring Algorithmic Complexity with Big O Notation 00:10:21
5. Identifying Algorithms with Different Complexities 00:06:43
6. Summary 00:00:28
2. Chapter 2 : Session2: Sorting Algorithms and Fundamental Data Structures
1. Lesson Overview 00:01:02
2. Introducing Bubble Sorting 00:04:48
3. Understanding Quick Sort 00:08:25
4. Using Merge Sort 00:03:40
5. Getting Started with Fundamental Data Structures 00:13:11
6. Summary 00:00:40
3. Chapter 3 : Session3: Hash Tables and Binary Search Trees
1. Lesson Overview 00:01:07
2. Introducing Hash Tables Part 1 00:11:34
3. Introducing Hash Tables Part 2 00:05:52
4. Getting Started with Binary Search Trees 00:07:12
5. Traversing a Binary Search Tree 00:06:00
6. Summary 00:00:27
4. Chapter 4 : Session4: Algorithm Design Paradigms
1. Lesson Overview 00:01:42
2. Introducing Greedy Algorithms 00:08:55
3. Getting Started with Divide and Conquer Algorithms 00:06:14
4. Understanding Dynamic Programming 00:05:18
5. Summary 00:00:19
5. Chapter 5 : Session5: String Matching Algorithms
1. Lesson Overview 00:01:01
2. Naive Search Algorithms 00:04:03
3. Getting Started with the Boyer-Moore String Searching Algorithm 00:08:55
4. Introducing Other String Matching Algorithms 00:03:00
5. Summary 00:00:25
6. Chapter 6 : Session6: Graphs, Prime Numbers, and Complexity Classes
1. Lesson Overview 00:03:04
2. Representing Graphs 00:06:20
3. Traversing a Graph 00:13:20
4. Calculating Shortest Paths 00:12:58
5. Prime Numbers in Algorithms 00:02:47
6. Other Concepts in Graphs 00:08:17
7. Summary 00:01:13

## Product Information

• Title: Beginning Java Data Structures and Algorithms
• Author(s): Kristian Secor, Joao Azevedo, James Cutajar
• Release date: January 2019
• Publisher(s): Packt Publishing
• ISBN: 9781789538236