Disclosure: when you buy through links on our site, we may earn an affiliate commission.

Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS)

Basic Algorithms and Data Structures: AVL tree, Binary Search Trees, Arrays, B Trees, Linked Lists, Stacks and HashMaps
4.5
4.5/5
(2,443 reviews)
20,734 students
Created by

9.8

CourseMarks Score®

10.0

Freshness

8.7

Feedback

10.0

Content

Platform: Udemy
Video: 21h 32m
Language: English
Next start: On Demand

Table of contents

Description

This course is about data structures and algorithms. We are going to implement the problems in Java. The course takes approximately 14 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
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!

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

Requirements

• Basic Java (loops and some OOP)

This course is for

• This course is meant for everyone from scientists to software developers who want to get closer to algorithmic thinking in the main
Software Engineer
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!
Browse all courses by on Coursemarks.
Platform: Udemy
Video: 21h 32m
Language: English
Next start: On Demand

Students are also interested in