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.4 (884 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
14,364 students enrolled
$75
Take This Course
  • Lectures 103
  • Contents Video: 5 hours
    Other: 8 mins
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 9/2013 English

Course 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.

What are the requirements?

  • Although any programming language may be used by the student, we use the java programming language to implement algorithms.

What am I going to get from this course?

  • 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

What is the target 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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction to Algorithms
Introduction
Preview
01:08
Euclid's algorithm
04:49
Bubble Sort algorithm
02:52
Why study data structures & algorithms
03:10
Correctness of an algorithm
01:35
Chapter Quiz
2 questions
Section 2: Analysis of Algorithms
Note on this section
Preview
Article
Introduction
Preview
03:20
How to calculate the time complexity
Preview
02:52
The RAM model of computation
Preview
02:07
Time complexity of Bubble sort algorithm
03:25
Pseudo code : Bubble sort algorithm
03:02
The Big O notation
03:26
Using Big O notation : Examples
04:41
Comparison of running times
04:02
Chapter Quiz
7 questions
Section 3: Basic Sorting and Search Algorithms
Selection Sort
02:48
02:34

One of the problems that people face in writing algorithms is how to translate their thoughts into a programming language. Many people cannot even start writing the very first statement of an algorithm. I suggest that if you are having such trouble, don't try to solve the whole problem together, rather break it down into smaller, easier parts. For e.g. try doing the following in writing code for the selection sort algorithm -

  • First try to write a method, which just finds the minimum number in the data array. Don't think about anything else, just that method. If you write it in a different method, then you may need to pass the data array as a parameter to that method. Return the index of that minimum element from this method.
  • Now change the method to find the minimum number STARTING FROM A PARTICULAR INDEX. So you will need to pass this index as a parameter.
  • Write another method which can swap items in an array, located at two different indexes. What parameters should be passed to this method?

Hopefully, by this time you will have enough clarity on completing the sorting algorithm, if you understood the pseudo code.

Introduction to Insertion Sort
01:56
Applying Insertion Sort algorithm to cue balls
02:08
Insertion Sort: Pseudocode
02:38
O(n²) sorting algorithms - Comparison
02:00
In place sorting
Article
Stable Vs Unstable Sorts
03:46
Searching elements in an un ordered array
03:16
Searching elements in an ORDERED array
02:33
Searching elements in an ORDERED array - contd.
05:48
Inserting and Deleting items in an ORDERED array
02:08
01:33

Try to write generic sort methods, like shown in the InsertionSortWithGenerics.java, for Bubble sort and Selection sort algorithms as an exercise. But if you don't want to get into generics at this point, you may choose to skip this section.

Chapter Quiz
6 questions
Assignment
Article
Section 4: Linked Lists
What is a Linked List?
03:21
Implementing a Linked List in Java
00:56
Inserting a new Node
05:25
Length of a Linked List
02:11
Deleting the head node
02:11
Searching for an Item
03:11
Using java generics to parameterize the LinkedList
Article
Doubly Ended Lists
03:05
Inserting data in a sorted Linked List
04:38
Doubly Linked List
06:28
Insertion Sort revisited
10:32
Chapter Quiz
4 questions
Assignment
Article
Section 5: Stacks and Queues
Stacks
02:41
Abstract Data Types
00:37
Implementing Stacks using Arrays
03:21
Queues
02:32
Queues using Arrays
05:29
Double Ended Queues
01:58
Double Ended Queues using Arrays
04:20
Chapter Quiz
7 questions
Assignment
Article
Section 6: Recursion
Introduction
04:33
Understanding Recursion
03:04
Tail recursion
02:48
Tower of Hanoi
08:25
Tower of Hanoi - Implementation
02:58
Merge Sort
04:09
Merge Sort - Pseudocode
04:24
Merge Step - Pseudocode
04:32
Time Complexity of Merge Sort
02:52
Chapter Quiz
6 questions
Assignment
Article
Section 7: Binary Search Trees
The Tree Data structure
03:41
Binary Trees
03:34
Binary Search Trees
02:01
Finding an item in a Binary Search Tree
02:24
Implementing the find method
03:02
Inserting an item in a Binary Search Tree
03:34
Deleting an Item : Case 1
06:06
Deleting an Item - Case 2
02:58
Deleting an Item - Case 3
03:44
Deleting an Item - Soft Delete
01:40
Finding smallest & largest values
02:33
Tree Traversal : In Order
03:19
Tree Traversal : Pre Order
01:58
Tree Traversal : Post Order
00:56
Unbalanced Trees Vs Balanced Trees
02:16
Height of a Binary Tree
01:34
Time Complexity of Operations on Binary Search Trees
02:16
Chapter Quiz
5 questions
Assignment
Article
Section 8: More Sorting Algorithms
Introduction
01:27
QuickSort
04:54
QuickSort: The partition step
02:21
Shell Sort
05:27
Shell Sort: Example
03:28
Counting Sort
04:50
Radix Sort
02:27
Bucket Sort
03:12
Chapter Quiz
3 questions

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Raghavendra Dixit, Dizauvi Learning Solutions

I am a graduate of the Indian Institute of Technology, popularly known as IIT. I have worked as a Technical Architect in both product & services based software companies with about 14 years of programming experience (as of June, 2013). I have worked with languages like Perl/Java/Objective C/Scala and JavaScript. I have also used various frameworks/platforms like Spring, Play, Cocoa and Android. I have lead some enterprise application development. In my free time I like to create technical content, which is easy to follow and really helps people in the software industry, do their job better. People undergoing my trainings and videos always have delightful experience and most of them have told me that they wish things were taught in this way at school too. I hope that people taking my courses here benefit to perform their programming jobs better and also are able to get to better positions, with confidence, in case they are looking out. Most recently I have worked as VP Engineering in a Sequoia funded startup and now I am off to do my own startup.

Ready to start learning?
Take This Course