**Beginning Java Data Structures and Algorithms**

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 2h 56m | 5.69 GB

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

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.

What You Will Learn

- Understand some of the fundamental concepts behind key algorithms
- Express space and time complexities using Big O notation.
- Correctly implement classic sorting algorithms such as merge and quicksort
- Correctly implement basic and complex data structures
- Learn about different algorithm design paradigms, such as greedy, divide and conquer, and dynamic programming
- Apply powerful string matching techniques and optimize your application logic
- Master graph representations and learn about different graph algorithms

**Algorithms and Complexities**

1 Course Overview

2 Lesson Overview

3 Developing Our First Algorithm

4 Measuring Algorithmic Complexity with Big O Notation

5 Identifying Algorithms with Different Complexities

6 Summary

**Sorting Algorithms and Fundamental Data Structures**

7 Lesson Overview

8 Introducing Bubble Sorting

9 Understanding Quick Sort

10 Using Merge Sort

11 Getting Started with Fundamental Data Structures

12 Summary

**Hash Tables and Binary Search Trees**

13 Lesson Overview

14 Introducing Hash Tables Part 1

15 Introducing Hash Tables Part 2

16 Getting Started with Binary Search Trees

17 Traversing a Binary Search Tree

18 Summary

**Algorithm Design Paradigms**

19 Lesson Overview

20 Introducing Greedy Algorithms

21 Getting Started with Divide and Conquer Algorithms

22 Understanding Dynamic Programming

23 Summary

**String Matching Algorithms**

24 Lesson Overview

25 Naive Search Algorithms

26 Getting Started with the Boyer-Moore String Searching Algorithm

27 Introducing Other String Matching Algorithms

28 Summary

**Graphs, Prime Numbers, and Complexity Classes**

29 Lesson Overview

30 Representing Graphs

31 Traversing a Graph

32 Calculating Shortest Paths

33 Prime Numbers in Algorithms

34 Other Concepts in Graphs

35 Summary