Mô tả

This course will help you in better understanding of the basics of Data Structures and how algorithms are implemented in high-level programming language. This course consists of lectures on data structures and algorithms which covers the computer science theory + implementation of data structures in python language. This course will also help students to face interviews at the top technology companies. This course is like having personal tutors to teach you about data structures and algorithms.


There’s tons of concepts and content in this course. To begin the course:

  • We have a discussion of why we need data structures.

  • Then we move on to discuss Analysis of Algorithms ie Time and Space complexity, though the Asymptotic Notation ie Big O, Omega and Theta are taken up at the end of this course so that you do not get confused and concentrate on understanding the concepts of data structures.

  • We have a programming environment setup to make sure you have all the software you need in order to get the hands-on experience in implementing Data structures and algorithms.


Then we get to the essence of the course; algorithms and data structures. Each of the specific algorithms and data structures is divided into two sections. Theory lectures and implementation of those concepts in Python. We then move on to learn:

  1. Recursion

  2. Stacks, Queues, Deques

  3. Linked List

  4. Trees & Binary Trees

  5. Binary Search Trees

  6. Priority Queues and Heaps

  7. Graphs & Graph Traversal Algorithms

  8. Searching and Sorting algorithms


Again, each of these sections includes theory lectures covering data structures & their Abstract Data Types and/or algorithms. Plus the implementation of these topics in Python.


Bạn sẽ học được gì

Learn Data Structures, Abstract Data Types and their implementation in Python

Implementation of Searching Algorithms in Python

Implementation of Stacks, Queues, Linked List, Binary Trees, Heaps and Graphs in Python

Implementation of Binary Tree Traversal Techniques in Python

Graph traversals techniques ie Depth First Search and Breadth-First Search in Python

Implementation of Sorting Algorithms in Python

Enhance Analytical Skill and efficiently use searching and sorting algorithms in real applications

Yêu cầu

  • Prior knowledge of Programming any high level language
  • Basic knowledge of Python Programming

Nội dung khoá học

16 sections

Course Overview

7 lectures
Course Introduction
03:12
Get the most out of this course
02:40
Why we need Data Structure ?
02:35
Why Learn Algorithms ?
05:12
Abstract Data Type (ADT)
09:17
Python Installation on Windows
03:51
PyCharm (IDE) Installation on Windows
05:33

Bonus: Python Crash Course (Basics and Fundamentals)

29 lectures
First Python Program, Data Types and Variables
15:13
Integers & Float Data Types
02:18
Strings Data Types
05:12
Boolean & None Data Types
06:06
Arithmetic Operators & Integer Division
09:27
Relational or Comparison Operators
09:58
Logical Operators
08:26
input() Function
07:13
print() Function
05:06
if, if-else and elif Statements
22:27
range() Function
05:43
while() & for() Loops
19:10
break & continue Statements
08:30
What are Lists?
08:00
Using Lists and List Indexing
05:08
What are Tuples ?
04:24
Tuple Indexing
04:45
Membership & Identity Operators
02:19
What are Dictionaries?
04:26
Using Dictionaries
08:13
What are Functions?
08:10
Writing Functions in Python?
04:48
Importing Modules in Python
07:32
Creating Your Own Modules
06:37
Fundamentals of Object Oriented Programming
02:49
Defining Classes & Creating Objects
12:44
More on __init__ Method (Constructor)
03:06
Understanding self Parameter
03:11
Static and Local Variables
06:49

Analysis of Algorithms

9 lectures
Time Complexity
15:06
Order of Growth
03:12
Asymptotic Analysis
06:37
Big-Oh Notation
05:07
Big Omega Notation
02:50
Big Theta Notation
02:17
Performance Summary
02:45
Space Complexity
05:11
Quiz
2 questions

Recursion and Analysis of Recursive Functions

11 lectures
How Recursion Works ?
09:57
Iteration vs recursion lets Implement
06:54
Time Complexity of Recursion - Recurrence Relation
12:29
Recurrence Relation - Another example
08:33
Types of Recursion - Tail and Head Recursion
09:35
Types of Recursion - Tree Recursion
23:30
Types of Recursion - Indirect Recursion
03:03
Sum of N Natural Numbers
07:08
Lets Implement Sum of N Numbers
03:35
Factorial
05:57
Lets Implement Factorial
04:41

Searching Algorithms

6 lectures
Linear Search Algorithm
10:05
Lets Implement Linear Search
05:22
Binary Search Iterative Algorithm
11:18
Lets Implement Binary Search using Iterations
06:30
Binary Search Recursive Algorithm
06:41
Lets Implement Binary Search using Recursion
07:12

Sorting Algorithms

25 lectures
Sorting Introduction
02:45
Stable and Unstable Sorting
03:20
Selection Sort - Explanation, Algorithm and Analysis
11:32
Selection Sort - Implementation
06:05
Insertion Sort - Explanation, Algorithm and Analysis
14:04
Insertion Sort - Implementation
05:14
Bubble Sort - Explanation, Algorithm and Analysis
16:49
Bubble Sort - Implementation
05:42
Shell Sort - Explanation, Algorithm and Analysis
13:01
Shell Sort - Implementation
06:15
Merge Sort
08:28
Merge Sort - Algorithm
05:40
Merging - Algorithm
11:36
Merge Sort - Complexity Analysis
03:38
Merge Sort - Implementation
10:13
Quick Sort
28:31
Quick Sort - Algorithm
05:36
Quick Sort - Complexity Analysis
06:43
Quick Sort - Implementation
10:39
Count Sort - Explanation, Algorithm and Analysis
16:21
Count Sort - Implementation
07:37
Radix Sort - Explanation, Algorithm and Analysis
17:57
Radix Sort - Implementation
09:32
Python's Built-in Sorting Functions
05:16
Sorting Algorithms - Summary of Complexities
07:58

Linked List

48 lectures
Why do we use Linked List
17:09
Creating Node of Linked List
12:28
Playing with the links of Linked List
06:31
How to Create Linked List
05:09
Displaying or Traversing Linked List
08:25
Lets Implement Creating and Displaying Linked List
20:48
Searching Element in Linked List
07:09
Lets Implement Search in Linked List
05:24
Insert Element at the Beginning of Linked List
04:59
Lets Implement Insert Element at the Beginning of Linked List
05:50
Insert Element Anywhere in between the Linked List
09:45
Lets Implement Insert Element Anywhere in Between the Linked List
06:11
Delete Element at Beginning of Linked List
06:09
Lets Implement Delete Element at Beginning of the Linked List
05:09
Delete Element at End of Linked List
08:15
Lets Implement Delete Element at End of Linked List
05:55
Delete Element Anywhere in between Linked List
07:22
Lets Implement Delete Element Anywhere in between Linked List
05:38
Circular Linked List
05:02
Creating Circular Linked List
05:54
Traversing Circular Linked List
08:50
Lets Implement Creating and Displaying Circular Linked List
10:54
Insert Element at the Beginning of Circular Linked List
04:41
Lets Implement Insert Element at the Beginning of Circular Linked List
05:02
Insert Element Anywhere in between the Circular Linked List
07:53
Lets Implement Insert Element Anywhere in between the Circular Linked List
05:19
Delete Element at Beginning of Circular Linked List
05:13
Lets Implement Delete Element at Beginning of Circular Linked List
06:37
Delete Element at End of Circular Linked List
07:15
Lets Implement Delete Element at End of Circular Linked List
06:23
Delete Element Anywhere in between Circular Linked List
07:14
Lets Implement Delete Element Anywhere in between Circular Linked List
05:10
Double Linked List
01:22
Creating Node of Doubly Linked List
12:53
Playing with links of Doubly Linked List
08:05
Creating Doubly Linked List
05:33
Traversing Doubly Linked List
04:44
Lets Implement Creating and Displaying Doubly Linked List
17:37
Insert Element at the Beginning of Doubly Linked List
04:53
Lets Implement Insert Element at the Beginning of Doubly Linked List
05:15
Insert Element Anywhere in between the Doubly Linked List
08:20
Lets Implement Insert Element Anywhere in between the Doubly Linked List
06:16
Delete Element at Beginning of Doubly Linked List
05:31
Lets Implement Delete Element at Beginning of Doubly Linked List
05:18
Delete Element at End of Doubly Linked List
04:30
Lets Implement Delete Element at End of Doubly Linked List
04:51
Delete Element Anywhere in between Doubly Linked List
07:16
Lets Implement Delete Element Anywhere in between Doubly Linked List
06:14

Stacks

5 lectures
What is Stack Data Structure ?
10:33
Stacks using Arrays
11:38
Lets Implement Stacks using Arrays
12:19
Stacks using Linked List
13:58
Lets Implement Stacks using Linked List
15:25

Queues and DEque

8 lectures
What is Queue Data Structure ?
07:01
Queues using Arrays
10:25
Lets Implement Queues using Arrays
12:04
Queues using Linked List
13:28
Lets Implement Queues using Linked List
15:37
What are Double Ended Queues (DEQue) ?
05:10
Lets Implement Double Ended Queues using Arrays
14:05
Lets Implement Double Ended Queues using Linked List
09:31

Binary Trees

31 lectures
Trees Definition and Properties
05:54
Trees - Terminology
06:33
Trees - Height and Levels
03:21
Degree of Node and Tree
03:43
Binary Trees and it's Properties
12:46
Proper Binary Tree
05:20
Full Binary Tree
06:30
Complete Binary Tree
07:17
Full Vs Complete Vs Proper Binary Tree
07:55
Binary Tree Representation - Array Based
14:43
Binary Tree Representation - Linked Based
07:19
Traversing Binary Trees
01:34
Binary Trees Traversal - Preorder
05:33
Binary Trees Traversal - Inorder
05:23
Binary Trees Traversal - Postorder
05:26
Binary Trees Traversal - Level Order
03:48
Easy way of remembering Binary Trees Traversals
03:04
Creating Binary Trees
15:37
Function for Preorder Traversal
09:51
Function for Inorder Traversal
09:29
Function for Postorder Traversal
10:07
Lets Implement Creating Binary Trees
06:00
Lets Implement Traversing Binary Trees
06:02
Lets Create Binary Trees
06:37
Lets Create Binary Trees - Another Example
05:04
Function for Level Order Traversal
08:40
Lets Implement Level Order Traversal
06:49
Count Number of Nodes in Binary Tree
14:10
Lets Implement Count Operations of Binary Tree
03:44
Find Height of Binary Tree
13:44
Lets Implement Height Operations of Binary Tree
04:19

Binary Search Trees

18 lectures
What are Binary Search Trees ?
11:02
Binary Search Trees - Searching (Concept)
06:58
Binary Search Trees - Iterative Search Function
11:28
Binary Search Trees - Recursive Search Function
10:49
Binary Search Trees - Insertion (Concept)
05:22
Binary Search Trees - Iterative Insert Function
12:21
Binary Search Trees - Recursive Insert Function
08:40
Traversing Binary Search Tree
05:05
Lets Implement Binary Search Tree - Insertion
11:57
Lets Implement Recursive Insertion
06:49
Lets Implement Iterative Search
05:10
Lets Implement Recursive Search
05:02
Binary Search Tree - Deletion
01:41
Binary Search Tree - Deletion Case-Leaf Node
01:43
Binary Search Tree - Deletion Case-Node with One Subtree
05:09
Binary Search Tree - Deletion Case-Node with Both Subtrees
10:54
Lets Implement Deletion in Binary Search Tree
16:54
Performance and Problem of Binary Search Trees
10:15

Balanced Search Trees

20 lectures
Balanced Search Trees
02:20
AVL Trees
10:03
AVL Tree Rotations for Insertion
17:11
AVL Tree - LL Rotation
10:22
AVL Tree - RR Rotation
10:36
AVL Tree - LR Rotation
09:15
AVL Tree - RL Rotation
09:00
AVL Tree Rotations after Deletion
18:14
Performance Analysis of AVL Trees
02:16
Red-Black Trees
05:02
Red-Black Trees - Restructuring
10:18
Red-Black Trees - Insertion
09:54
Red-Black Trees - Deletion
10:49
Performance Analysis of Red-Black Trees
02:14
Splay Trees
03:28
Splay Trees - Zig-Zig Restructuring
04:36
Splay Trees - Zig-Zag Restructuring
04:22
Splay Trees - Zig Restructuring
03:28
Splay Trees - Splaying
05:39
Performance Analysis of Splay Trees
03:30

Priority Queues & Heaps

11 lectures
What are Priority Queues ?
04:17
Heaps Data Structure
08:36
Heaps - Insertion
07:59
Heaps - Insert Function
19:18
Lets Implement Creating Heaps using Insert function
12:04
Heaps - Deletion
06:47
Heaps - Delete Function
09:04
Lets Implement Deletion from Heaps
08:52
heapq Module in Python
12:57
Heap Sort - Explanation, Algorithm and Analysis
09:38
Lets Implement Heap Sort
06:17

Hashing

9 lectures
What is Hashing
12:29
Chaining - Collision Detection Scheme
11:49
Let us Implement Chaining
17:21
Linear Probing
09:56
Let us Implement Linear Probing
10:56
Quadratic Probing
07:51
Double Hashing
08:58
Bucket Sort - Explanation, Algorithm and Analysis
11:30
Lets Implement Bucket Sort
07:52

Graphs

22 lectures
Graphs - Introduction
08:04
Graphs - Degree of a Vertex
03:57
Graphs - Path and Cycle
05:18
Graphs - Subgraphs and Connected Components
06:39
Graph Abstract Data Type (ADT)
03:14
Graphs Representations
01:54
Graphs - Edge List Representation
05:37
Graphs - Adjacency List Representation
10:43
Graphs - Adjacency Matrix Representation
15:01
Graphs Representation - Summary of Performance
03:50
Lets Implement Graphs ADT
18:45
Lets Implement Undirected Graph
10:27
Lets Implement Weighted Undirected Graph
06:15
Lets Implement Directed Graph
08:32
Lets Implement Weighted Directed Graph
05:03
Graph Traversals
03:32
Breadth First Search
10:10
Breadth First Search Algorithm
09:52
Lets Implement Breadth First Search
08:50
Depth First Search
06:25
Depth First Search Algorithm
09:12
Lets Implement Depth First Search
07:00

Appendix

2 lectures
How to install Numpy Python module in PyCharm on Windows
02:46
Getting Certificate of Completion
00:41

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.