Introduction to Data Structures & Algorithms in Java

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

4.31 (3460 reviews)
Software Engineering
Introduction to Data Structures & Algorithms in Java
5 hours
Mar 2016
last update
regular price

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


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.


Introduction to Algorithms

Euclid's algorithm
Bubble Sort algorithm
Why study data structures & algorithms
Correctness of an algorithm
Chapter Quiz

Analysis of Algorithms

Note on this section
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
Chapter Quiz

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
In place sorting
Stable Vs Unstable Sorts
Searching elements in an un ordered array
Searching elements in an ORDERED array
Searching elements in an ORDERED array - contd.
Inserting and Deleting items in an ORDERED array
Sorting any type of object
Chapter Quiz

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
Using java generics to parameterize the LinkedList
Doubly Ended Lists
Inserting data in a sorted Linked List
Doubly Linked List
Insertion Sort revisited
Chapter Quiz

Stacks and Queues

Abstract Data Types
Implementing Stacks using Arrays
Queues using Arrays
Double Ended Queues
Double Ended Queues using Arrays
Chapter Quiz


Understanding Recursion
Tail recursion
Tower of Hanoi
Tower of Hanoi - Implementation
Merge Sort
Merge Sort - Pseudocode
Merge Step - Pseudocode
Time Complexity of Merge Sort
Chapter Quiz

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 & 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
Chapter Quiz

More Sorting Algorithms

QuickSort: The partition step
Shell Sort
Shell Sort: Example
Counting Sort
Radix Sort
Bucket Sort
Chapter Quiz


Deleting the root
Inserting an item in a heap
Heaps as Priority Queues
Representing heaps using Arrays
Heap Sort
Building a heap
Chapter Quiz


Direct Access Tables
Resolving collisions through chaining
The Hash function
Open Addressing to resolve collisions
Strategies for Open Addressing
Time Complexity: Open Addressing
Chapter Quiz


March 9, 2023
The theory and explanation was perfect but the chapter code files are possibly corrupted, please check
March 2, 2023
Dude ... Its great ... I hope to learn more and faster... I wish, this course will help me reach my goals
March 1, 2023
The course is really good. The instructor is able to explain each topic in a very easy and calm manner. Loved it.
October 29, 2022
Difficult to hear Can not read source code. I don't know how you can sell this course without any responsibility for content problem
March 2, 2022
sound is not clear, the English accent is also not clear, the speaker is swallowing the end of words, which make it sometimes difficult to understand. The codes provided in the resources are not accessible, and when opened by notepad++ it is a garbage text. The course is below expectations, and not recommended
February 23, 2022
Very Good. Would have wanted more real life/everyday examples too. The examples are basic and practical at best
January 10, 2022
it is getting practical as I move forward which makes me happy and makes me feel like im understanding concepts that I never understood in my past two years in college
September 22, 2021
This course is good for beginner to understand about the basics of Algo and DS. I like videos with the codding hands on which help me to understand the concept in better way. I am disappointed when I didn't get the videos of the stack and Queue hands on. Other wise course is good to clear the DS and algo concept.
January 8, 2018
Instructor is good at explaining concepts. I don't have to go on the internet and search for a clearer understanding of what he is saying.
January 1, 2018
UPDATE: Instructor does not maintain the course anymore and doesn't answer any questions. Material is good but if you have questions, best to use Google or enroll in another course... Content moves fast at times and slow at other times... Content is great but pacing could be better. Also, lessons could be combined better. There seems to be very relatable content which have their own lessons. The quizzes are too easy and challenge very little. Assignments are short and not always practical
December 27, 2017
The presentation is excellent. It would be great if you add few more code examples in the course. However the course is still very good.
December 11, 2017
The explanations, animation and even the rate of speaking is very good. But the course lacks depth, even for a first semester undergrad course it lacks depth.
December 8, 2017
This course can be used for parlel study with univercity for some sort of practice of different kind of sorting algorithms and datastructures. The presenter has strong accent but the material is understandable and the quality of code not bad. There are a lot of opportunities to test the learned knowledge with lab exercises. You can use this course for prepairing for technical interview.
November 26, 2017
I found great value in this as a way to quickly brush up on data structure, as I have not worked with them for a while. I think this course is best suited for people who have seen this stuff before but wanted to quickly refresh their memory. I like that the entire course is concise yet detailed enough to understand
October 23, 2017
a great course, really rich content and easy to digest. Better than most of my lecturers in college. One but of criticism if I may, the title of this course is slightly misleading. Some, not all content is delivered using Java. Although code samples are provided it would be great to get a walk through on some of the more advanced algorithms and structures with the Java language. But I still think this course was brilliant. Thanks



Introduction to Data Structures & Algorithms in Java - Price chart


Introduction to Data Structures & Algorithms in Java - Ratings chart

Enrollment distribution

Introduction to Data Structures & Algorithms in Java - Distribution chart
udemy ID
course created date
course indexed date
course submited by