Algorithms Data Structures in Java #2 (+INTERVIEW QUESTIONS) (Udemy.com)
Tries Data Structures, Ternary Search Trees, Data Compression, Substring Search and Sorting Algorithms
Created by: Holczer Balazs
Last updated November 2023
What you will learn
- Grasp the fundamentals of algorithms and data structures
- Develop your own algorithms that best fit to the personal need
- Detect non-optimal code snippets
- Understand data compression
- Understand sorting algorithms
- Understand tries and ternary search trees
- Understand Strings and StringBuilders
How it compares
Against the other 86 rated Udemy courses in Data Structures and Algorithms on CourseDuck:
- Rating4.6 out of 5higher than 66% of them
- Reviews826#29 of 87 by number of reviews
- Length12.9 hourslonger than 55% of them
- Last updatedNovember 2023more recently than 55% of them
Course Description
This course is about data structures and algorithms. We are going to implement the problems in Java, but I try to do it as generic as possible: so the core of the algorithms can be used in C++ or Python. The course takes approximately 12 hours to complete. I highly recommend typing out these data structures several times on your own in order to get a good grasp of it.
Section 1 - Tries
what are prefix trees (tries)
basics operations: insertion, sorting and autocomplete
longest common prefix problem
prefix trees applications in networking (IP routing)
Section 2 - Ternary Search Trees
what is the problem with tries?
what are ternary search trees
basic operations: insertion and retrieval
applications of tries (IP routing and Boggle Game)
Section 3 - 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 4 - Strings
strings in Java programming
what is the String Constant Pool?
prefixes and suffixes
longest common prefix problem
longest repeated substring problem
suffix tries and suffix arrays
Section 5 - 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 6 - Data Compression Algorithms
what is data compression
run length encoding
Huffman-encoding
LZW compression and decompression
Section 7 - 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
First, we are going to discuss prefix trees: modern search engines for example use these data structures quite often. When you make a google search there is an autocomplete feature because of the underlying trie data structure. It is also good for sorting: hashtables do not support sort operation but on the other hand, tries do support.
Substring search is another important field of computer science. You will learn about Z algorithm and we will discuss brute-force approach as well as Rabin-Karp method.
The next chapter is about sorting. How to sort an array of integers, doubles, strings or custom objects? We can do it with bubble sort, insertion sort, mergesort or quicksort. You will learn a lot about the theory as well as the concrete implementation of these important algorithms.
The last lectures are about data compression: run-length encoding, Huffman encoding and LZW compression.
Thanks for joining the course, let's get started!
Instructor Details
- 4.6 Rating
826 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
Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS) (2026)
4.7 (3,235 Reviews)
Provider: Udemy
Time: 22.1h
$13.99
Quantitative Finance & Algorithmic Trading in Python (2026)
4.6 (2,714 Reviews)
Provider: Udemy
Time: 18.3h
$13.99
More Data Structures and Algorithms courses
JavaScript Data Structures & Algorithms + LEETCODE Exercises (2026)
4.9 (4,131 Reviews)
Provider: Udemy
Time: 9.6h
$119.99
Data Structures & Algorithms: Coding Interview Masterclass (2026)
4.8 (15,900 Reviews)
Provider: Udemy
Time: 10.8h
$99.99
Master the Coding Interview: Big Tech (FAANG) Interviews (2026)
4.8 (6,000 Reviews)
Provider: Udemy
Time: 36.8h
$109.99
Mastering critical SKILLS in Algorithms using C++: Part 1 (2023)
4.8 (598 Reviews)
Provider: Udemy
Time: 18.9h
$84.99
Reviews
By Hubert Graja on 6/5/2021
It is the best course on Algorithms and Data Structures that I have came across. Strongly recocomended to people who really what to deep dive into this subject but still have a fair practical approach towards learning !
By Jyoti Chopra on 7/28/2019
You did not talk about what if the string we want to insert is already a substring of the previous string. and how do we know if a string has ended or not
By Natalie P on 9/4/2018
Courses by Holczer Balazs are exceptional, best on the subject in my opinion. His "repetitive" manner is magical: everything becomes so clear and just "sticks"...
By Aayush Pandey on 8/12/2018
The instructor is greatly knowledgeable and I like the fact that he uses real life examples and scenarios that we face everyday in order to explain complex topics.
By Rahul Patwardhan on 4/29/2018
This is my moneys worth. I have taken Algorithms and Data Structures in Java Part 1 and this course is part 2 and both of these courses are very good. good explanation with good examples. Please note this is not a Java course so be familiar with Java. Concepts explained can be applied to any programming language. Great job by Holczer Balazs. Some people might find accent or English grammar off but considering the content coverage of course. I could ignore it or rather got used to it. I value the effort put in by the instructor and quality of content. Hats off.
By Robert Marriott on 4/11/2018
I'm currently doing a refresher on data structures and algorithms using material from several sources. I find it helpful to get different perspectives and implementations of these algorithms. Through the videos, this instructor has answered many questions I had. He's also expanded on the topics by including details like use-cases and direct performance comparisons between algorithms. I would recommend this course to anyone interested in expanding their knowledge of this subject, even if you've already studied other sources.
By Andrew Riznyk on 9/21/2017
This is an amazing course ! He does a great job at explaining how everything works and what the advantages and disadvantages to each algorithm and data structure are and why they are that way. If you fully want to understand how things work and become a better programmer then take his two courses on data structures and algorithms. He may have an accent but his illustrations and code make up for it big time. To become a great programmer all you have to do is program everyday for 10 years, or you can study algorithms and data structures for 1 year (maybe 2). Do yourself a favor and take his 2 courses on Data Structures- you dont have to know java - just convert what he is doing into whatever language you are working with.
By Jorge Mendoza on 9/3/2017
Strings section. The coding part have a few errors, they are corrected while coding but I got confused at the first time. Not to much explanation while coding, mainly while coding in String problems part. I would like to hear an explanation of how it is coded in that way. More examples of algorithms implementation would be fine.
By Ajay Kumar Sharma on 2/15/2017
Overall course is good and provides basic knowledge pertaining to important algorithms. That being said, still certain lectures regarding String, Sorts and Compression algorithms definitely needs to be updated. Compression algorithms need more explanation regarding the written code. We surely can understand it after investing some of our time but then it beats the purpose of video tutorials.
By Arun Nayan on 5/15/2016
The instructor breaks the information into easy-to-consume mini-modules. He speaks well: not too quickly or too slowly. He explains everything very clearly. Excellent!
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100











