Java 9 Data Structures and Algorithms covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This video is based on the Zero Bug Bounce milestone of Java 9.We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, and abstract data types such as stacks and queues. Next, we'll take you through the basics of functional programming while making sure you get used to thinking recursively. We provide plenty of examples along the way to help you understand each concept. You will also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!
About the Author
Debasish Ray Chawdhuri is an established Java developer and has been in the industry for the last eight years. He has developed several systems, from CRUD applications to programming languages and big data processing systems. He had provided the first implementation of an extensible business reporting language specification, and a product around it, to verify company financial data for the Government of India while he was employed at Tata Consultancy Services Ltd. In Talentica Software Pvt. Ltd., he implemented a domain-specific programming language to easily implement complex data aggregation computations that compiled to Java bytecode. Currently, he is leading a team developing a new high-performance structured data storage framework to be processed by Spark. The framework is named Hungry Hippos and will be open sourced very soon.
He has worked for Tata Consultancy Services Ltd., Oracle India Pvt. Ltd., and Talentica Software Pvt. Ltd.
The speed of execution of an algorithm is a very important factor to be considered while designing. Hence, the performance of an algorithm needs to be studied.
Asymptotic bound defines the complexity of an algorithm. It is important to analyze asymptotic bounds before implementing the algorithm.
In order to optimize our algorithm, we need to start fixing the problem with large inputs. This video will focus on optimizing the algorithm.
Doubly linked list is one step better than a linked list. It prevents the time required for removing the last element. Let’s learn about it in this video.
A circular linked list is an ordinary linked list, except that the last element holds the reference to the first element as its next element. This helps when there is a round robin fashion implemented.
The queue is opposite of a stack; it follows the FIFO approach. Let’s learn about it in this video
Double-ended queue combines a stack and queue and hence has the advantages of both. In this video, we will work with Double-ended queue.
Recursive algorithms reduce the time involved in programming and implementation of a particular code. In this video, we will look at a few examples of recursive algorithms.
Lambda expressions let us pass a block of code as an argument to another function.
Functional data structures are data structures that follow the principle of immutability and inductive (or recursive) definition. We are going to learn about functional linked lists here
A monad is a common design pattern that is followed in functional programming. It stores object of another class
Search algorithms are used to search an element in an array and list.
Sorting eases the process of searching for a particular element. In this video, we will see how to sort an array
In this video, we will look at problems caused due to recursive calls.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.