Java 9 Data Structures and Algorithms

Gain a deep understanding of the complexity of data structures and algorithms and discover the right way to write more efficient code
Preview in Mapt

Java 9 Data Structures and Algorithms

Debasish Ray Chawdhuri

2 customer reviews
Gain a deep understanding of the complexity of data structures and algorithms and discover the right way to write more efficient code
Mapt Subscription
FREE
$29.99/m after trial
eBook
$22.40
RRP $31.99
Save 29%
Print + eBook
$39.99
RRP $39.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$22.40
$39.99
$29.99 p/m after trial
RRP $31.99
RRP $39.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


Java 9 Data Structures and Algorithms Book Cover
Java 9 Data Structures and Algorithms
$ 31.99
$ 22.40
Learning JavaScript Data Structures and Algorithms - Third Edition Book Cover
Learning JavaScript Data Structures and Algorithms - Third Edition
$ 35.99
$ 25.20
Buy 2 for $35.00
Save $32.98
Add to Cart

Book Details

ISBN 139781785889349
Paperback340 pages

Book Description

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 book 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, as well as 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 get the also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!

Table of Contents

Chapter 1: Why Bother? – Basic
The performance of an algorithm
Optimization of our algorithm
Fixing the problem with large powers
Summary
Chapter 2: Cogs and Pulleys – Building Blocks
Arrays
Linked list
Doubly linked list
Circular linked list
Summary
Chapter 3: Protocols – Abstract Data Types
Stack
Queue
Double ended queue
Summary
Chapter 4: Detour – Functional Programming
Recursive algorithms
Lambda expressions in Java
Functional data structures and monads
The concept of a monad
Analysis of the complexity of a recursive algorithm
Performance of functional programming
Summary
Chapter 5: Efficient Searching – Binary Search and Sorting
Search algorithms
Sorting
A problem with recursive calls
Summary
Chapter 6: Efficient Sorting – quicksort and mergesort
quicksort
mergesort
Complexity of any comparison-based sorting
The stability of a sorting algorithm
Summary
Chapter 7: Concepts of Tree
A tree data structure
The tree abstract data type
Binary tree
Summary
Chapter 8: More About Search – Search Trees and Hash Tables
Binary search tree
Self-balancing binary search tree
Red-black tree
Hash tables
Summary
Chapter 9: Advanced General Purpose Data Structures
Priority queue ADT
Heap
Linked heap
Binomial forest
Sorting using a priority queue
In-place heap sort
Summary
Chapter 10: Concepts of Graph
What is a graph?
The graph ADT
Representation of a graph in memory
Traversal of a graph
Cycle detection
Spanning tree and minimum spanning tree
Finding the minimum spanning tree
Summary
Chapter 11: Reactive Programming
What is reactive programming?
Producer-consumer model
Functional way of reactive programming
Summary

What You Will Learn

  • Understand the fundamentals of algorithms, data structures, and measurement of complexity
  • Find out what general purpose data structures are, including arrays, linked lists, double ended linked lists, and circular lists
  • Get a grasp on the basics of abstract data types—stack, queue, and double ended queue
  • See how to use recursive functions and immutability while understanding and in terms of recursion
  • Handle reactive programming and its related data structures
  • Use binary search, sorting, and efficient sorting—quicksort and merge sort
  • Work with the important concept of trees and list all nodes of the tree, traversal of tree, search trees, and balanced search trees
  • Apply advanced general purpose data structures, priority queue-based sorting, and random access immutable linked lists
  • Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more

Authors

Table of Contents

Chapter 1: Why Bother? – Basic
The performance of an algorithm
Optimization of our algorithm
Fixing the problem with large powers
Summary
Chapter 2: Cogs and Pulleys – Building Blocks
Arrays
Linked list
Doubly linked list
Circular linked list
Summary
Chapter 3: Protocols – Abstract Data Types
Stack
Queue
Double ended queue
Summary
Chapter 4: Detour – Functional Programming
Recursive algorithms
Lambda expressions in Java
Functional data structures and monads
The concept of a monad
Analysis of the complexity of a recursive algorithm
Performance of functional programming
Summary
Chapter 5: Efficient Searching – Binary Search and Sorting
Search algorithms
Sorting
A problem with recursive calls
Summary
Chapter 6: Efficient Sorting – quicksort and mergesort
quicksort
mergesort
Complexity of any comparison-based sorting
The stability of a sorting algorithm
Summary
Chapter 7: Concepts of Tree
A tree data structure
The tree abstract data type
Binary tree
Summary
Chapter 8: More About Search – Search Trees and Hash Tables
Binary search tree
Self-balancing binary search tree
Red-black tree
Hash tables
Summary
Chapter 9: Advanced General Purpose Data Structures
Priority queue ADT
Heap
Linked heap
Binomial forest
Sorting using a priority queue
In-place heap sort
Summary
Chapter 10: Concepts of Graph
What is a graph?
The graph ADT
Representation of a graph in memory
Traversal of a graph
Cycle detection
Spanning tree and minimum spanning tree
Finding the minimum spanning tree
Summary
Chapter 11: Reactive Programming
What is reactive programming?
Producer-consumer model
Functional way of reactive programming
Summary

Book Details

ISBN 139781785889349
Paperback340 pages
Read More
From 2 reviews

Read More Reviews

Recommended for You

Java 9 Concurrency Cookbook - Second Edition Book Cover
Java 9 Concurrency Cookbook - Second Edition
$ 39.99
$ 28.00
Java 9 Programming By Example Book Cover
Java 9 Programming By Example
$ 35.99
$ 25.20
Java 9 with JShell Book Cover
Java 9 with JShell
$ 39.99
$ 28.00
Java 9 Programming Blueprints Book Cover
Java 9 Programming Blueprints
$ 39.99
$ 28.00
Java 9 Cookbook Book Cover
Java 9 Cookbook
$ 35.99
$ 25.20
Design Patterns and Best Practices in Java 9 Book Cover
Design Patterns and Best Practices in Java 9
$ 35.99
$ 25.20