Introduction to Data Structures & Algorithms in Java

Video description

Designed to help understand the fundamentals of DS & Algorithms really well. A must have for programming interviews.

About This Video

  • 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
  • In Detail

    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.

    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

    Publisher resources

    Download Example Code

    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