Java 9 data structures and algorithms a step-by-step guide to data structures and algorithms

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...

Full description

Bibliographic Details
Main Author: Chawdhuri, Debasish Ray
Format: eBook
Language:English
Published: Birmingham, UK Packt Publishing 2017
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
LEADER 08408nmm a2200517 u 4500
001 EB001928142
003 EBX01000000000000001091044
005 00000000000000.0
007 cr|||||||||||||||||||||
008 210123 ||| eng
020 |a 9781785888076 
050 4 |a QA76.73.J38 
100 1 |a Chawdhuri, Debasish Ray 
245 0 0 |a Java 9 data structures and algorithms  |b a step-by-step guide to data structures and algorithms  |c Debasish Ray Chawdhuri 
260 |a Birmingham, UK  |b Packt Publishing  |c 2017 
300 |a 1 volume  |b illustrations 
505 0 |a What is reactive programming? -- Producer-consumer model -- Semaphore -- Compare and set -- Volatile field -- Thread-safe blocking queue -- Producer-consumer implementation -- Spinlock and busy wait -- Functional way of reactive programming -- Summary -- Index 
505 0 |a Cover -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Why Bother? -- Basic -- The performance of an algorithm -- Best case, worst case and the average case complexity -- Analysis of asymptotic complexity -- Asymptotic upper bound of a function -- Asymptotic upper bound of an algorithm -- Asymptotic lower bound of a function -- Asymptotic tight bound of a function -- Optimization of our algorithm -- Fixing the problem with large powers -- Improving time complexity -- Summary -- Chapter 2: Cogs and Pulleys -- Building Blocks -- Arrays -- Insertion of elements in an array -- Insertion of a new element and the process of appending it -- Linked list -- Appending at the end -- Insertion at the beginning -- Insertion at an arbitrary position -- Looking up an arbitrary element -- Removing an arbitrary element -- Iteration -- Doubly linked list -- Insertion at the beginning or at the end -- Insertion at an arbitrary location -- Removing the first element -- Removing an arbitrary element -- Removal of the last element -- Circular linked list -- Insertion -- Removal -- Rotation -- Summary -- Chapter 3: Protocols -- Abstract Data Types -- Stack -- Fixed-sized stack using an array -- Variable-sized stack using a linked list -- Queue -- Fixed-sized queue using an array -- Variable-sized queue using a linked list -- Double ended queue -- Fixed-length double ended queue using an array -- Variable-sized double ended queue using a linked list -- Summary -- Chapter 4: Detour -- Functional Programming -- Recursive algorithms -- Lambda Expressions in Java -- Functional interface -- Implementing a functional interface with lambda -- Functional data structures and monads -- Functional linked lists -- The forEach method for a linked list -- Map for a linked list 
505 0 |a Fold operation on a list -- Filter operation for a linked list -- Append on a linked list -- The flatMap method on a linked list -- The concept of a monad -- Option monad -- Try monad -- Analysis of the complexity of a recursive algorithm -- Performance of functional programming -- Summary -- Chapter 5: Efficient Searching -- Binary Search and Sorting -- Search algorithms -- Binary search -- Complexity of the binary search algorithm -- Sorting -- Selection sort -- Complexity of the selection sort algorithm -- Insertion sort -- Complexity of insertion sort -- Bubble sort -- Inversions -- Complexity of the bubble sort algorithm -- A problem with recursive calls -- Tail recursive functions -- Non-tail single recursive functions -- Summary -- Chapter 6: Efficient Sorting -- Quicksort and Merge Sort -- Quicksort -- Complexity of quicksort -- Random pivot selection in quicksort -- Merge sort -- The complexity of merge sort -- Avoiding the copying of tempArray -- Complexity of any comparison-based sorting -- The stability of a sorting algorithm -- Summary -- Chapter 7: Concepts of Tree -- A tree data structure -- The traversal of a tree -- The depth-first traversal -- The breadth-first traversal -- The tree abstract data type -- Binary tree -- Types of depth-first traversals -- Non-recursive depth-first search -- Summary -- Chapter 8: More About Search -- Search Trees and Hash Tables -- Binary search tree -- Insertion in a binary search tree -- Invariant of a binary search tree -- Deletion of an element from a binary search tree -- Complexity of the binary search tree operations -- Self-balancing binary search tree -- AVL tree -- Complexity of search, insert, and delete in an AVL tree -- Red-black tree -- Insertion -- Deletion -- The worst case of a red-black tree -- Hash tables -- Insertion -- The complexity of insertion -- Search -- Complexity of the search 
653 |a COMPUTERS / Programming Languages / Java / bisacsh 
653 |a Algorithms 
653 |a Algorithms / fast 
653 |a Algorithms / http://id.loc.gov/authorities/subjects/sh85003487 
653 |a Algorithmes 
653 |a Data structures (Computer science) / http://id.loc.gov/authorities/subjects/sh85035862 
653 |a algorithms / aat 
653 |a Data structures (Computer science) / fast 
653 |a Java (Computer program language) / fast 
653 |a Java (Langage de programmation) 
653 |a Structures de données (Informatique) 
653 |a Java (Computer program language) / http://id.loc.gov/authorities/subjects/sh95008574 
653 |a COMPUTERS / Programming Languages / JavaScript / bisacsh 
041 0 7 |a eng  |2 ISO 639-2 
989 |b OREILLY  |a O'Reilly 
500 |a "This book is based on the Zero Bug Bounce milestone.". - Includes index 
015 |a GBB795187 
776 |z 9781785888076 
776 |z 9781785889349 
776 |z 1785888072 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781785889349/?ar  |x Verlag  |3 Volltext 
082 0 |a 005.133 
082 0 |a 500 
520 |a 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 In Detail Java 9 Data Structures and Algorithms covers classical,  
520 |a Gain a deep understanding of the complexity of data structures and algorithms and discover the right way to write more efficient code About This Book This book provides complete coverage of reactive and functional data structures Based on the latest version of Java 9, this book illustrates the impact of new features on data structures Gain exposure to important concepts such as Big-O Notation and Dynamic Programming Who This Book Is For This book is for Java developers who want to learn about data structures and algorithms. Basic knowledge of Java is assumed.  
520 |a 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! Style and approach This book will teach you about all the major algorithms in a step-by-step manner.  
520 |a Special notes on the Big-O Notation and its impact on algorithms will give you fresh insights