# Introduction to Data Structures & Algorithms in Java

## Udemy

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.

Who 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

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

What Will I 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

Curriculum For This Course Expand All Collapse All 103 Lectures 05:04:55 + – Introduction to Algorithms 5 Lectures 13:34 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 + – Analysis of Algorithms 9 Lectures 27:38 Note on this section Preview 00:43 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 + – Basic Sorting and Search Algorithms 14 Lectures 34:48 Selection Sort 02:48

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.

Selection Sort : Pseudocode 02:34 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 00:54 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

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.

Sorting any type of object 01:33 Chapter Quiz 6 questions Assignment 00:46 + – Linked Lists 12 Lectures 44:05 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 01:21 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 00:45 + – Stacks and Queues 8 Lectures 21:47 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 00:49 + – Recursion 10 Lectures 38:17 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 00:32 + – Binary Search Trees 18 Lectures 47:52 The Tree Data structure 03:41 Binary Trees 03:34 Binary Search Trees 02:01 Finding an item in a Binary Search Tree

• 自由时间安排

• 免费:
• 收费:
• 证书:
• MOOC:
• 视频讲座:
• 音频讲座:
• Email-课程:
• 语言: 英语

### 反馈

30240184x: Data Structures • 数据结构
Learn the basics of data structures and methods to design algorithms and analyze...
Principles of Digital Communication II
This course is the second of a two-term sequence with 6.450. The focus is on...
Data Structures
This course is a survey of fundamental data structures for information...
Hilary Mason: Advanced Machine Learning by O&'Reilly Media
Apply best practices to common types of machine learning problems, extract...
Data Structures and Algorithms
This is a rigorous course on the design and analysis of efficient algorithms...

Thousands of online courses for only \$15
Most courses are dropped to \$15 flat price!
Ruby on Rails Tutorial: Learn From Scratch
This post is part of our “Getting Started” series of free text tutorials on...
\$10 Sitewide Deal
\$10 Fixed Price across the site!
1 Hour HTML
Learn how to code in HTML in 1 hour. This class is set up for complete beginners...
1 hour jQuery
Have you ever wanted to learn to code. This course will show you the basics...