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)
Udemy
platform
English
language
Software Engineering
category
Introduction to Data Structures & Algorithms in Java
25,166
students
5 hours
content
Mar 2016
last update
$69.99
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

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.

Content

Introduction to Algorithms

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

Analysis of Algorithms

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

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
Assignment

Stacks and Queues

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

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

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
Assignment

More Sorting Algorithms

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

Heaps

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

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
Chapter Quiz
Assignment
Conclusion

Reviews

Anonymized
March 9, 2023
The theory and explanation was perfect but the chapter code files are possibly corrupted, please check
Sudipta
March 2, 2023
Dude ... Its great ... I hope to learn more and faster... I wish, this course will help me reach my goals
Anonymized
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.
Truong
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
Abdullah
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
Okechukwu
February 23, 2022
Very Good. Would have wanted more real life/everyday examples too. The examples are basic and practical at best
abdirahman
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
JITENDRA
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.
Ordwayne
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.
Christopher
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
K
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.
Chris
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.
Alexander
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.
Karabo
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
Eric
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

Charts

Price

Introduction to Data Structures & Algorithms in Java - Price chart

Rating

Introduction to Data Structures & Algorithms in Java - Ratings chart

Enrollment distribution

Introduction to Data Structures & Algorithms in Java - Distribution chart
81094
udemy ID
8/20/2013
course created date
4/22/2020
course indexed date
Bot
course submited by