You can get Java 9 Data Structures and Algorithms Pdf for free on a great free eBook resource that has the best books in the subject as eBook Format.
Java 9 Data Structures and Algorithms pdf Download
- Java 9: Data Structures are introductory tutorials for a broad set of data formats that can be learned in Java or in any Java programming language. This product’s contents are offered without any warranty.
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
- 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
- Choice of load factor
- Summary
- Chapter 9: Advanced General Purpose Data Structures
- Priority queue ADT
- Heap
- Insertion
- Removal of minimum elements
- Analysis of complexity
- Serialized representation
- Array-backed heap
- Linked heap
- Insertion
- Removal of the minimal elements
- Complexity of operations in ArrayHeap and LinkedHeap
- Binomial forest
- Why call it a binomial tree?
- Number of nodes
- The heap property
- Binomial forest
- Complexity of operations in a 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
- Adjacency matrix
- Complexity of operations in a sparse adjacency matrix graph
- More space-efficient adjacency-matrix-based graph
- Complexity of operations in a dense adjacency-matrix-based graph
- Adjacency list
- Complexity of operations in an adjacency-list-based graph
- Adjacency-list-based graph with dense storage for vertices
- Complexity of the operations of an adjacency-list-based graph with dense storage for vertices
- Traversal of a graph
- Complexity of traversals
- Cycle detection
- Complexity of the cycle detection algorithm
- Spanning tree and minimum spanning tree
- For any tree with vertices V and edges E, |V| = |E| + 1
- Any connected undirected graph has a spanning tree
- Any undirected connected graph with the property |V| = |E| + 1 is a tree
- Cut property
- Minimum spanning tree is unique for a graph that has all the edges whose costs are different from one another
- Finding the minimum spanning tree
- Union find
- Complexity of operations in UnionFind
- Implementation of the minimum spanning tree algorithm
- Complexity of the minimum spanning tree algorithm
- Summary
- Chapter 11: Reactive Programming
- 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
Java 9 Data Structure and Algorithms PDF
Improving Time complexity
Analysis of Asymptotic complexity
About the Author:
Debasish Ray Chawdhuri
- Debasish Ray Chawdhuri is an established Java developer and has been in the industry for the last 8 years. He has developed several systems, right from CRUD applications to programming languages and big data processing systems.
Best case, worst case and the average case complexity
Suggestion to Viewers:
If you are too little serious about your studies, you Should never consider ebooks/books in PDF. The reason is the electronic device divert your attention and also cause strains while reading your books. paperbacks work well over ebooks for better eye health. Kindly buy from it officially from the publishers.
Java 9 Data Structures and Algorithms pdf Download
Read Our Privacy Policy
Disclaimer:
DataStructures.in does not own the books/materials neither created nor scanned. We provide the links which are available on the internet. For any queries, Disclaimers are kindly requested to Contact Us. We will do our best, We do not SUPPORT PIRACY. Thank you