Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS) (Udemy.com)
Basic Algorithms and Data Structures: AVL tree, Binary Search Trees, Arrays, B Trees, Linked Lists, Stacks and HashMaps
Created by: Holczer Balazs
Last updated September 2026
What you will learn
- grasp the fundamentals of algorithms and data structures
- detect non-optimal code snippets
- learn about arrays and linked lists
- learn about stacks and queues
- learn about binary search trees
- learn about balanced binary search trees such as AVL trees or red-black trees
- learn about priority queues and heaps
- learn about B-trees and external memory
- learn about hashing and hash tables
Course Description
This course is about data structures and algorithms. We are going to implement the problems in Java. The course takes approximately 20 hours to complete. It is highly recommended to type out these data structures several times on your own in order to get a good grasp of it.
Section 1:
data structures and abstract data types
Section 2 - Arrays
what are arrays
what is random access and how to indexes
Section 3 - Linked Lists
linked lists and doubly linked lists
linked list related interview questions
Section 2 - Stacks and Queues:
what are stacks and queues
heap memory and stack memory
visualizing stack memory
Section 3 - Binary Search Trees (BSTs):
what are tree data structures?
how to achieve O(logN) logarithmic running time?
binary search trees
Section 4 - AVL Trees
what is the problem with binary search trees?
balanced search trees: AVL trees
rotations
Section 5 - Red-Black Trees
what are red-black trees?
what is recovering operation?
comparing AVL trees and red-black trees
Section 6 - Splay Trees
splay trees and caches
achieve O(1) running time for getting the recently visited item
Section 7 - Heaps and Priority Queues
what are priority queues?
what is heap data structure?
how to do sorting in O(NlogN) with heaps?
Section 8 - B-Trees
external memory and the main memory (RAM)
B-trees and their applications in memory
B* trees and B+ trees
Section 9 - Hashing and HashMaps:
what are hashing and hashtables (hashmaps)
what are hash-functions
how to achieve O(1) running time complexity
Section 10 - Sorting Algorithms
basic sorting algorithms
bubble sort and selection sort
insertion sort and shell sort
quicksort and merge sort
comparison based and non-comparison based approaches
string sorting algorithms
bucket sort and radix sort
Section 11 - Substring Search Algorithms
substring search algorithms
brute-force substring search
Z substring search algorithm
Rabin-Karp algorithm and hashing
Knuth-Morris-Pratt (KMP) substring search algorithm
Section 12 (BONUS):
what is LRU cache
LRU cache implementation
Section 13 (BONUS):
Fenwick trees (binary indexed trees)
binary indexed tree implementation
Section 14 - Algorithms Analysis
how to measure the running time of algorithms
running time analysis with big O (ordo), big Ω (omega) and big θ (theta) notations
complexity classes
polynomial (P) and non-deterministic polynomial (NP) algorithms
O(1), O(logN), O(N) and several other running time complexities
In each chapter you will learn about the theoretical background of each algorithm or data structure, then we are going to write the code on a step by step basis in Eclipse, Java.
Most of the advanced algorithms relies heavily on these topics so it is definitely worth understanding the basics. These principles can be used in several fields: in investment banking, artificial intelligence or electronic trading algorithms on the stock market.
Thanks for joining the course, let's get started!
Instructor Details
- 4.7 Rating
3,235 Reviews
Holczer Balazs
My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.
Take a look at my website if you are interested in these topics!
More courses by Holczer Balazs
Python Data Structures And Algorithms: Practical Course (2026)
4.7 (4,432 Reviews)
Provider: Udemy
Time: 23.6h
$16.99
Concurrency, Multithreading and Parallel Computing in Java (2026)
4.5 (4,034 Reviews)
Provider: Udemy
Time: 14.4h
$10.99
Software Architectures (SOLID) & Design Patterns in Java (2026)
4.6 (3,772 Reviews)
Provider: Udemy
Time: 9.4h
$11.99
Introduction to Collections, Generics & Reflection in Java (2026)
4.5 (3,649 Reviews)
Provider: Udemy
Time: 11h
$10.99
Quantitative Finance & Algorithmic Trading in Python (2026)
4.6 (2,714 Reviews)
Provider: Udemy
Time: 18.3h
$13.99
Java Programming: Step by Step from A to Z (2019)
4.5 (2,429 Reviews)
Provider: Udemy
Time: 8.9h
$84.99
More Java courses
Hibernate and Spring Data JPA: Beginner to Guru (2026)
4.8 (1,265 Reviews)
Provider: Udemy
Time: 30.3h
$84.99
Learn JAVA Programming - Beginner to Master (2026)
4.7 (31,368 Reviews)
Provider: Udemy
Time: 61.4h
$119.99
The Complete Java Certification Course (2025)
4.7 (30,462 Reviews)
Provider: Udemy
Time: 18.1h
$174.99
Oracle Java Certification - Pass the Associate 1Z0-808 Exam. (2025)
4.7 (6,236 Reviews)
Provider: Udemy
Time: 20.2h
$12.99
Reviews
By Vijayabhaskar Vaidnath on 6/1/2022
After a wide range of working experience I tend to forget the basic concepts it is always better to take a step back (on a good note) to learn what is necessary. With that in mind this course is best suited to refresh the memory on the Algorithms and Data Structures in Java.
By Anonymized User on 4/28/2021
The explanation was really good and i have to appreciate you for the time taken to make the implementation videos of all the data structures and explaining the methods you have instantiated and also please include CIRCULAR LINKED LIST in the Linked List segment. Thankyou so much for the course and make more courses like these.
By Weronika Sleboda on 1/27/2021
I am in the middle of this course but I had to stop just to write how amazed I am by this teacher. I was extremly bad at algorithms, I would say beyond hopeless. I tried to learn from a popular paid website ( I don't want to name it, but it's advertised by Youtube) but it's a joke compared to what this teacher can teach you for such low price. I wouldn't even give his courses on algorithms 5 stars, I would give them 6 stars. Finally someone who teaches how to implement algorithms from scratch (and not copying and pasting the java libraries), someone who teaches algorithmic thinking and not only java syntax, someone who explains WHEN to use a certain data structure and algorithm and WHY. I can't get people who are complaining, because I didn't found any better course in the whole internet world so far. I'm waiting for more courses (maybe more on C++). So far, thank you teacher!
By Rahul Singh Rana on 10/17/2019
It's Amazing but it will be good f you let us understant the programming of B-Tree because it would become very difficult for me to implement. But I learn a lots of things. Fot all of your efforts for bringing this course on Udemy. Thank You!
By Andrew on 1/4/2019
Superb course. The coverage is thorough and Big O notation is discussed. The workings and intentions of the algorithms and data structures are clearly explained along with their trade offs, they are then fully implemented. Bonus sections have been added since I bought this course. Best of all there are interview questions and the solutions are discussed. A very nice addition. You need some knowledge of java or c# (the former is used throughout). I set the video quality to 720p on my smaller second monitor to get the best view overriding the 1080 auto setting. The fonts although small were easily legible this way. As a native English speaker I had no problem understanding what the instructor was saying. Holczer clearly has a passion for algorithms and is very knowledgeable, he has a gift for teaching what can be a difficult subject. Highly recommended. Thank you for putting this course together!
By Ana B Sanchez-Prieto on 12/13/2018
This course is the perfect way to jump from the basic level courses that you can find everywhere to the most advanced ones that are almost impossible to understand after you have completed the basic ones. The explanations are very clear, and the abstract data types are perfectly connected with the data structures that implement them. Can one ask more? Yes: the instructor answers the questions in less than two days!!!! Update: Since I am following Holczer Balazs courses, my CS grades have increased considerably.
By Nitin Jain on 7/10/2018
Excellent Course to get anyone interested in Data Structures. I liked the detailed coverage on Trees. A complimentary course to highlight real-world examples and scenarios using the DS discussed would be great. Already, there are courses- Advanced Algorithms and Algorithmic Problems by the same author which have good implementation examples.
By George Murray on 4/15/2018
Really great course! I wanna thank the instructor for his time and attention to detail! I will be taking many more courses with this instructor. This class will most certainly provide you will a very solid foundation in the most popular and algorithms and data structures, more so than what you would find in a university environment.!
By Yusuf Hamzah on 12/12/2016
This is awesome because the videos integrate theoretical concepts and practical-based learning together in a visible manner. 1) In postgraduate courses, these are done separately between lectures and workshop tutorials. Sometimes, materials are not presented coherently and coordinated. 2) Self-paced experimental learning (by doing) lacks theoretical underpinning of "WHY". 3) Reading (good) book is slow and not interactive. Sometimes, they are also not straight to the point. "Missing tree from jungle" is common. The strength is that the materials presented are properly referenced and checked. Since this is algorithm and programming subject, in my view this delivery format is the most appropriate because it can always be verified (by coding the results) anyway. Thank you.
By Arthur Kerpician on 8/4/2016
Too many updates on the lessons, due to wrongful implementations. The course is useful, but it's hard to follow because the examples (and code) are changing. Also, I think the spoken English must be improved, to provide a better learning experience.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 94 / 100












