Holczer Balazs – Algorithms and Data Structures in Java – Part I
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 11 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.
In the first part of the course we are going to learn about basic data structures such as linked lists, stacks and queues, heaps and some advanced ones such as AVL trees, red-black trees or hash tables. We will try to optimize each data structure ( for example avoiding obsolete references ) as much as possible.
In each chapter I am going to talk 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.
Course Curriculum
Arrays
-
Preview
Arrays introduction – basics (5:55)
-
Preview
Arrays introduction – operations (5:54)
-
Preview
Using arrays (9:51)
-
Preview
ArraysLists in Java (8:42)
Linked Lists
-
Start
Linked lists theory – basics (7:09)
-
Start
Linked list theory – operations (9:32)
-
Start
Linked list theory – doubly linked lists (1:40)
-
Start
Linked list theory – linked lists versus arrays (6:36)
-
Start
Linked list implementation I (4:47)
-
Start
Linked list implementation II (11:40)
-
Start
Linked list implementation III (5:59)
-
Start
Doubly linked list introduction (7:55)
-
Start
Linked lists in java.util (8:14)
Stacks & Queues
-
Start
Stack introduction (4:01)
-
Start
Stacks in memory management ( stacks, heaps ) (7:23)
-
Start
Stacks and recursive method calls (7:02)
-
Start
Stack implementation with linked list I (7:28)
-
Start
Stack implementation with linked list II (3:38)
-
Start
Stack implementation with arrays (11:01)
-
Start
Dijkstra’s interpreter introduction (1:18)
-
Start
Dijkstra’s interpreter implementation (9:12)
-
Start
Java built in java.util.Stack (5:09)
-
Start
Queues introduction (5:12)
-
Start
Queue implementation with linked list (9:43)
-
Start
Java built in java.util.Queue (6:31)
Binary Search Trees
-
Start
Binary search trees theory – basics (10:23)
-
Start
Binary search trees theory – search, insert (4:25)
-
Start
Binary search trees theory – delete (6:08)
-
Start
Binary search trees theory – in-order traversal (4:25)
-
Start
Binary search trees theory – running times (2:10)
-
Start
Binary search trees implementation I – Node, Tree (7:02)
-
Start
Binary search trees implementation II – insertion (9:55)
-
Start
Binary search tree implementation III – maximum, minimum (7:24)
-
Start
Binary search tree implementation IV – traversal (5:41)
-
Start
Binary search tree implementation V – remove (9:25)
-
Start
Binary search tree implementation VI – remove II (5:54)
-
Start
Custom objects in a tree (6:44)
Balanced Trees: AVL Trees
-
Start
AVL trees introduction – motivation (4:13)
-
Start
AVL trees introduction – basics (5:21)
-
Start
AVL trees introduction – height (8:44)
-
Start
AVL trees introduction – rotations cases (10:17)
-
Start
AVL trees introduction – illustration (10:50)
-
Start
AVL trees introduction – sorting (3:38)
-
Start
AVL implementation – Node and Tree (3:21)
-
Start
AVL implementation – balance and height parameters (4:45)
-
Start
AVL implementation – implementing the rotations (7:36)
-
Start
AVL implementation – insertion I (6:03)
-
Start
AVL implementation – insertion II (8:52)
-
Start
AVL implementation – testing (3:19)
-
Start
AVL tree remove introduction (6:35)
-
Start
AVL tree remove implementation I (8:31)
-
Start
AVL tree generic implementation (3:55)
Balanced Trees: Red-Black Trees
-
Start
Red-black trees introduction – basics (10:38)
-
Start
The logic behind red-black trees (4:15)
-
Start
Red-black trees rotations- cases I (5:10)
-
Start
Red-black trees rotations- cases II (4:25)
-
Start
Red-black trees rotations- cases III (3:17)
-
Start
Red-black trees rotations- cases IV (2:45)
-
Start
Red-black trees introduction – example I (4:47)
-
Start
Red-black trees introduction – example II (4:19)
-
Start
Red-black tree versus AVL tree (3:25)
-
Start
Red-black tree implementation I – Node class (4:28)
-
Start
Red-black tree implementation II – traverse (2:06)
-
Start
Red-black tree implementation III – insert (3:40)
-
Start
Red-black tree implementation IV – rotate left / right (5:48)
-
Start
Red-black tree implementation V – fixing the violations (9:52)
-
Start
Red-black tree implementation VI – fixing the violations (5:52)
-
Start
Red-black tree implementation VII – testing (1:59)
Splay Trees
-
Start
Splay tree introduction I – basics (12:49)
-
Start
Splay tree introduction II – example (3:52)
-
Start
Splay tree implementation I – find, rotate (9:44)
-
Start
Splay tree implementation II – spalying (3:34)
-
Start
Splay tree implementation III – testing (5:50)
Heaps
-
Start
Priority queues introduction (8:13)
-
Start
Heap introduction – basics (8:14)
-
Start
Heap introduction – array representation (9:17)
-
Start
Heap introduction – remove operation (4:43)
-
Start
Heap introduction – heapsort (5:13)
-
Start
Heap introduction – running times (5:05)
-
Start
Other types of heaps: binomial and Fibonacci heap (2:59)
-
Start
Heap implementation I (8:28)
-
Start
Heap implementation II (6:38)
-
Start
Heap implementation III (5:00)
-
Start
Heaps in java.util.PriorityQueue (8:33)
B-Trees
-
Start
B-tree introduction – basics (13:01)
-
Start
B-tree and external memory (4:07)
-
Start
Disk access times (5:41)
-
Start
B-tree introduction – search (2:46)
-
Start
B-tree introduction – insertion (7:10)
-
Start
B-tree introduction – deletion (5:30)
-
Start
In-order traversal (4:06)
Hashtables
-
Start
Associative array ADT (2:37)
-
Start
Hashtables introduction – basics (9:04)
-
Start
Hashtables introduction – collisions (6:59)
-
Start
Hashtables introduction – load factor & dynamic resizing (6:03)
-
Start
Chaining method summary (4:05)
-
Start
Chaining implementation I – put (9:16)
-
Start
Chaining implementation II – get (4:27)
-
Start
Chaining implementation III – testing
-
Start
Linear probing summary (3:59)
-
Start
Linear probing implementation I – put (5:32)
-
Start
Linear probing implementation II – get (2:57)
-
Start
Linear probing implementation III – testing (4:44)
-
Start
Generic linear probing implementation I – basics (6:44)
-
Start
Generic linear probing implementation II – get (4:14)
-
Start
Generic linear probing implementation III – put (5:35)
-
Start
Generic linear probing implementation IV – remove (6:26)
-
Start
Generic linear probing implementation V – resize (5:30)
-
Start
Generic linear probing implementation VI – testing (2:39)
-
Start
Generic linear probing implementation – hashCode (2:05)
-
Start
Maps in Java Collections (5:52)
Least Recently Used (LRU) Cache
-
Start
Why to use cache? (3:25)
-
Start
LRU cache introduction (8:06)
-
Start
LRU cache implementation I (4:22)
-
Start
LRU cache implementation II (11:18)
Course Materials
-
Start
Slides
-
Start
Source code
Instant Access Available
Downloadable Content
Sale Page: https://globalsoftwaresupport.teachable.com/p/algorithms-and-data-structures-in-java-part-i
- Upon ordering the product, a delivery email with download instructions will be sent immediately to you so that you may download your files. If you log in (or create an account) prior to purchase you will also be able to access your downloads from your account dashboard.
- It is a digital download, so please download the order items and save them to your hard drive. In case the link is broken for any reason, please contact us and we will resend the new download link to you.
- If you don't receive the download link, please don’t worry about that. We will update and notify you as soon as possible from 8:00 AM – 8:00 PM (UTC+8).
- Please Contact Us if there are any further questions or concerns you may have. We are always happy to assist!
11 reviews for Algorithms and Data Structures in Java – Part I – Holczer Balazs
There are no reviews yet.