Introduction to Data Structures & Algorithms in Java

Video description

This course introduces some basic data structures (arrays, linked lists, stacks, queues, trees and heaps) and algorithms (various sorting algorithms, and algorithms for operations on binary search trees and heaps). We will also cover recursion in this course. Use of graphics and animations makes the lectures very easy to understand and digest. After taking this course, you will loose your fear for data structures and algorithms.

What You Will Learn

  • Be able to know and implement various data structures and algorithms
  • Be able to write your own algorithms and understand if their running time is good or bad

Audience

Anyone who wants to learn data structures and algorithms (introductory)Anyone appearing for interviews, can be used to understand from grounds up, or as a quick revision

About The Author

Raghavendra Dikshit: Raghavendra Dixit - Dizauvi Learning Solutions - I am a graduate of the Indian Institute of Technology, popularly known as IIT. I have worked as a Technical Architect in both product & services based software companies with about 14 years of programming experience (as of June, 2013). I have worked with languages like Perl/Java/Objective C/Scala and JavaScript. I have also used various frameworks/platforms like Spring, Play, Cocoa and Android. I have lead some enterprise application development. In my free time I like to create technical content, which is easy to follow and really helps people in the software industry, do their job better. People undergoing my trainings and videos always have delightful experience and most of them have told me that they wish things were taught in this way at school too. I hope that people taking my courses here benefit to perform their programming jobs better and also are able to get to better positions, with confidence, in case they are looking out. Most recently I have worked as VP Engineering in a Sequoia funded startup and now I am off to do my own startup.

Table of contents

  1. Chapter 1 : Introduction to Algorithms
    1. Introduction
    2. Euclid's algorithm
    3. Bubble Sort algorithm
    4. Why study data structures algorithms
    5. Correctness of an algorithm
  2. Chapter 2 : Analysis of Algorithms
    1. Introduction
    2. How to calculate the time complexity
    3. The RAM model of computation
    4. Time complexity of Bubble sort algorithm
    5. Pseudo code : Bubble sort algorithm
    6. The Big O notation
    7. Using Big O notation : Examples
    8. Comparison of running times
  3. Chapter 3 : Basic Sorting and Search Algorithms
    1. Selection Sort
    2. Selection Sort: Pseudocode
    3. Introduction to Insertion Sort
    4. Applying Insertion Sort algorithm to cue balls
    5. Insertion Sort: Pseudocode
    6. O(n²) sorting algorithms – Comparison
    7. Stable Vs Unstable Sorts
    8. Searching elements in an un ordered array
    9. Searching elements in an ORDERED array
    10. Searching elements in an ORDERED array - contd.
    11. Inserting and Deleting items in an ORDERED array
    12. Sorting any type of object
  4. Chapter 4 : Linked Lists
    1. What is a Linked List?
    2. Implementing a Linked List in Java
    3. Inserting a new Node
    4. Length of a Linked List
    5. Deleting the head node
    6. Searching for an Item
    7. Doubly Ended Lists
    8. Inserting data in a sorted Linked List
    9. Doubly Linked List
    10. Insertion Sort revisited
  5. Chapter 5 : Stacks and Queues
    1. Stacks
    2. Abstract Data Types
    3. Implementing Stacks using Arrays
    4. Queues
    5. Queues using Arrays
    6. Double Ended Queues
    7. Double Ended Queues using Arrays
  6. Chapter 6 : Recursion
    1. Introduction
    2. Understanding Recursion
    3. Tail recursion
    4. Tower of Hanoi
    5. Tower of Hanoi – Implementation
    6. Merge Sort
    7. Merge Sort – Pseudocode
    8. Merge Step – Pseudocode
    9. Time Complexity of Merge Sort
  7. Chapter 7 : Binary Search Trees
    1. The Tree Data structure
    2. Binary Trees
    3. Binary Search Trees
    4. Finding an item in a Binary Search Tree
    5. Implementing the find method
    6. Inserting an item in a Binary Search Tree
    7. Deleting an Item: Case 1
    8. Deleting an Item - Case 2
    9. Deleting an Item - Case 3
    10. Deleting an Item - Soft Delete
    11. Finding smallest largest values
    12. Tree Traversal: In Order
    13. Tree Traversal: Pre Order
    14. Tree Traversal: Post Order
    15. Unbalanced Trees Vs Balanced Trees
    16. Height of a Binary Tree
    17. Time Complexity of Operations on Binary Search Trees
  8. Chapter 8 : More Sorting Algorithms
    1. Introduction
    2. QuickSort
    3. QuickSort: The partition step
    4. Shell Sort
    5. Shell Sort Example
    6. Counting Sort
    7. Radix Sort
    8. Bucket Sort
  9. Chapter 9 : Heaps
    1. Introduction
    2. Deleting the Root
    3. Inserting an item in a heap
    4. Heaps as Priority Queues
    5. Representing heaps using Arrays
    6. Heap Sort
    7. Building a heap
  10. Chapter 10 : Hashtables
    1. Introduction
    2. Direct Access Tables
    3. Hashing
    4. Resolving collisions through chaining
    5. The Hash function
    6. Open Addressing to resolve collisions
    7. Strategies for Open Addressing
    8. Time Complexity: Open Addressing
    9. Conclusion

Product information

  • Title: Introduction to Data Structures & Algorithms in Java
  • Author(s): Raghavendra Dixit
  • Release date: July 2017
  • Publisher(s): Packt Publishing
  • ISBN: 9781788628648