# 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)

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

### Rating

### Enrollment distribution

## Related Topics

81094

udemy ID

8/20/2013

course created date

4/22/2020

course indexed date

Bot

course submited by