Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

LinkedIn Learning

Introduction to Data Structures & Algorithms in Java

via LinkedIn Learning

Overview

Enhance your programming skill set by learning how to use Java to write code to implement data structures and algorithms.

Syllabus

1. Introduction to Algorithms
  • Introduction
  • Euclid's algorithm
  • Bubble sort algorithm
  • Why study data structures and algorithms?
  • Correctness of an algorithm
2. Analysis of Algorithms
  • Introduction
  • How to calculate the time complexity
  • The RAM model of computation
  • Time complexity of bubble sort algorithm
  • Pseudo code: Bubble sort algorithm
  • The Big O notation
  • Using Big O notation: Examples
  • Comparison of running times
3. Basic Sorting and Search Algorithms
  • Selection sort
  • Selection sort: Pseudocode
  • Introduction to insertion sort
  • Applying insertion sort algorithm to cue balls
  • Insertion sort: Pseudocode
  • O(n²) sorting algorithms: Comparison
  • Stable vs. unstable sorts
  • Searching elements in an unordered array
  • Searching elements in an ordered array
  • Searching elements in an ordered array continued
  • Inserting and deleting items in an ordered array
  • Sorting any type of object
4. Linked Lists
  • What is a linked list?
  • Implementing a linked list in Java
  • Inserting a new node
  • Length of a linked list
  • Deleting the head node
  • Searching for an item
  • Doubly ended lists
  • Inserting data in a sorted linked list
  • Doubly linked list
  • Insertion sort revisited
5. Stacks and Queues
  • Stacks
  • Abstract data types
  • Implementing stacks using arrays
  • Queues
  • Queues using arrays
  • Double-ended queues
  • Double-ended queues using arrays
6. Recursion
  • Introduction
  • Understanding recursion
  • Tail recursion
  • Tower of Hanoi
  • Tower of Hanoi: Implementation
  • Merge sort
  • Merge sort: Pseudocode
  • Merge step: Pseudocode
  • Time complexity of merge sort
7. Binary Search Trees
  • The tree data structure
  • Binary trees
  • Binary search trees
  • Finding an item in a binary search tree
  • Implementing the find method
  • Inserting an item in a binary search tree
  • Deleting an item: Case 1
  • Deleting an item: Case 2
  • Deleting an item: Case 3
  • Deleting an item: Soft delete
  • Finding smallest and largest values
  • Tree traversal: In order
  • Tree traversal: Pre order
  • Tree traversal: Post order
  • Unbalanced trees vs. balanced trees
  • Height of a binary tree
  • Time complexity of operations on binary search trees
8. More Sorting Algorithms
  • Introduction
  • Quicksort
  • Quicksort: The partition step
  • Shell sort
  • Shell sort example
  • Counting sort
  • Radix sort
  • Bucket sort
9. Heaps
  • Introduction
  • Deleting the root
  • Inserting an item in a heap
  • Heaps as priority queues
  • Representing heaps using arrays
  • Heap sort
  • Building a heap
10. Hashtables
  • Introduction
  • Direct access tables
  • Hashing
  • Resolving collisions through chaining
  • The hash function
  • Open addressing to resolve collisions
  • Strategies for open addressing
  • Time complexity: Open addressing
  • Conclusion

Taught by

Raghavendra Dixit

Reviews

4.5 rating at LinkedIn Learning based on 684 ratings

Start your review of Introduction to Data Structures & Algorithms in Java

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.