Data Structures and Algorithms: In Depth DSA using Java
What you'll learn
- Understand Complexity of Algorithms ie Time and Space they take at runtime
- Learn and compare Algorithms used in Searching and Sorting
- Learn different Data Structures and how to use them in applications
- Learn how to Code and Implement various data structures and algorithms in Java
Requirements
- Some prior programming experience is required in any programming language
- Basic knowledge of Java is needed
- Software required for this course is open-source and freely available, and we will go through the steps of downloading and installing it.
- This course is created on windows, but users on other platforms such as MasOS or Linux can comfortably use the required tools and have the same programing experience
Description
This course will help you in better understanding of the basics of Data Structures and how algorithms are implemented in Java. This course consists of Videos which covers the theory concepts + implementation in Java.
There’s tons of concepts and content in this course:
Basics of data structures & Algorithms
Analysis of Algorithms (Big O, Time and Space complexity)
Recursion & Analysis of Recursive Algorithms
Searching Algorithms
Sorting Algorithms
Linked List
Stacks
Queues
Binary Trees
Binary Search Trees
Balanced Binary Search Trees
Priority Queues and Heaps
Hashing
Graphs
Graph Traversal Algorithms
Followed by Advanced Topics of Algorithms:
Sets and Disjoint Sets
Divide and Conquer Approach - Introduction
Divide and Conquer - Binary Search
Divide and Conquer - Finding Maximum and Mininum
Divide and Conquer - Merge Sort
Divide and Conquer - Quick Sort
Divide and Conquer - Selection Algorithm
Divide and Conquer - Strassens Matrix Multiplication
Divide and Conquer - Closest Pair
Divide and Conquer - Convex Hull
Greedy Method - Introduction
Greedy Method - Knapsack Problem
Greedy Method - Job Sequencing with Deadlines
Greedy Method - Mininum Cost Spanning Tree (Prim's & Kruskal's Algorithms)
Greedy Method - Optimal Storage on Trees
Greedy Method - Optimal Merge Pattern
Greedy Method - Single Source Shortest Path (Dijkstra's Algorithm)
Dynamic Programming - Introduction
Dynamic Programming - Multistage Graphs
Dynamic Programming - All Pairs Shortest Path
Dynamic Programming - Single Source Shortest Path
Dynamic Programming - Optimal Binary Search Trees
Dynamic Programming - 0/1 Knapsack Problem
Dynamic Programming - Reliability Design
Dynamic Programming - Travelling Salespersons Problem
Backtracking - Introduction
Backtracking - n-Queesn Problem
Backtracking - Sum of Subsets Problem
Backtracking - Graph Coloring Problem
Backtracking - Hamiltonian Cycles Problem
Backtracking - 0/1 Knapsack Problem
Branch & Bound - Introduction
Branch & Bound - n-Queens Problem
Branch & Bound - Job Sequencing Problem
Branch & Bound - 0/1 Knapsack Problem
Again, each of these sections includes detailed videos tutorial.
Who this course is for:
- Anyone who wants to learn Data Structures and Algorithms using Java
Instructor
Welcome to my Udemy Courses, I make programming tutorials from beginner to advanced level, I focus on creating video tutorials for programmers, software developers, engineers, and analysts.
I cover topics for all skill levels, so there is something for everyone here. My focus is on Python and R programming which is applied in statistics, data analysis, data science and machine learning.