Switch to the store?

Learn Algorithms and Data Structures in Java for Day-to-Day Applications [Video]

More Information
  • Explore the Big O Notation and analyze algorithms to write efficient data structures
  • Leverage data structures for building blocks with Stacks and Queues
  • Implement sorting efficient algorithms with Heapsort to sort huge data sets within time limits
  • Create immutable code Recursion programming algorithms in a functional way to make your programs more concise and elegant and reduce memory consumption
  • Estimate the cardinality of a dataset and estimate elements of data sets with a small memory footprint
  • Use Querying Binary Search Trees and Hash tables to speed up querying in an application
  • Use algorithms to get approximate answers quickly, when speed matters more than precision
  • Scale your applications to millions of users with algorithms

Programs are created from algorithms and data structures. Mastering these is an essential part of your development as a Java programmer. They are the main building blocks for each architectural pattern. Many courses treat data structures and algorithms as a theoretical computer science topics. This course relates every technique back to real-world problems and situations you will face working as a programmer.

You will start off with data structures before diving deeper into hash tables and hash functions. This will allow your programs to find the in-memory data they need, even with huge quantities of records stored in the memory. You’ll learn to use querying binary search trees. The course will take you through heapsort, quicksort, recursion, and tail recursion algorithms. You’ll get familiar with multithreading algorithms and probabilistic algorithms. You’ll also understand the importance of advanced data structures and graph algorithms. This will help you to build priority queues and save your time by keeping disgruntled users at bay.

User databases and minimal computing requirements are on the rise. It's important to write sophisticated applications and run them with improved performance, and this course helps you write these applications. It will help you to gain in-demand knowledge of key data structures and algorithms and prepare you for the next stage in your career as a developer. 

Style and Approach

The vision of the course is to get you acquainted with the core and advanced data structures and algorithms used for day-to-day applications. You’ll see how they work and how to use them effectively in your own programs. It’s full of step-by-step instructions, revealing examples, and clear explanations that will help you understand the practical application of each algorithm with scenario trade-offs.

  • Get acquainted with the core and advanced data structures and algorithms used for day to day applications
  • Make your programs work faster and more efficiently
  • A practical guide with examples to demonstrate how efficient algorithm design principles improve your programming experience
Course Length 2 hours 41 minutes
Date Of Publication 21 Dec 2017
Big O Notation — How to Analyze Algorithms
Stacks — Basic Building Blocks of Every Program
Linked Lists — When We Need Fast Insertion
Arrays — When We Need Fast Lookup
Hash Functions — How to Distribute Data into Buckets
What is a Binary Search Tree?
Querying Binary Search Tree — When to Use It Effectively
Binary Search Tree — Removing Nodes
Heapsort — Sorting Using Heap
Understanding Recursion
Tail Recursion


Tomasz Lelek

Tomasz Lelek is a Software Engineer, programming mostly in Java, Scala. He has worked with ML algorithms for the past 5 years, with production experience in processing petabytes of data.
He is passionate about nearly everything associated with software development and believes that we should always try to consider different solutions and approaches before solving a problem. Recently he was a speaker at conferences in Poland, Confitura and JDD (Java Developers Day), and also at Krakow Scala User Group. He has also conducted a live coding session at Geecon Conference.

He is a co-founder of www.initlearn.com, an e-learning platform that was built with the Java language.

He has also written articles about everything related to the Java world: http://www.baeldung.com/.