The ‘Algorithms and Data Structures in Python (INTERVIEW Q&A) Course’ is taught by Holczer Balazs. He works as a simulation engineer at a multinational company. The course aims to focus on data structures, algorithms, and graphs. The course will implement such problems in Python programming language.

The course follows a hands-on approach. Students will be able to see the practical applications of all the concepts in the investment banking, AI, and stock market industries. The course is usually available for **INR 2,799** on Udemy but students can click on the link and get the ‘**Algorithms and Data Structures in Python (INTERVIEW Q&A) Course**’ for **INR 449**.

## Who all can opt for this course?

Novice Python programmers who are curious to study graphs, algorithms, and data structures.

## Course Highlights

Key Highlights | Details |
---|---|

Registration Link | Apply Now! |

Price | INR 449 (INR 2,799) 84% off |

Duration | 23 hours |

Rating | 4.4/5 |

Student Enrollment | 27,267 students |

Instructor | Holczer Balazs https://www.linkedin.com/in/holczerbalazs |

Topics Covered | Arrays, linked lists, stacks and queues, binary search trees, priority queues and heaps, etc. |

Course Level | Intermediate (Some basic Python knowledge is required) |

Total Student Reviews | 4,086 |

## Learning Outcomes

- Understand linked lists and arrays
- Learn about queues and stacks
- Learn about tree-like data structures (binary search trees)
- Learn about balances trees (AVL trees and red-black trees)
- Get familiar with heap data structures
- Know about dictionaries, hash tables, and hashing
- Recognize the differences between abstract data types and data structures
- Learn about graph traversal (BFS and DFS)
- Recognize shortest-path algorithms like Bellman-Ford and Dijkstra’s methods
- Learn the Prims algorithm for minimum spanning trees
- Recognize sorting formulas
- Learn how to create original algorithms
- Have a good knowledge of algorithmic thinking
- Be able to detect and fix inefficient code fragments

## Course Content

S.No. | Module (Duration) | Topics |
---|---|---|

1. | Introduction (02 minutes) | Introduction |

Complexity theory basics | ||

2. | Installation and Environment Setup (05 minutes) | Installing Python |

Installing PyCharm | ||

3. | ### DATA STRUCTURES ### (11 minutes) | Why do we need data structures? |

Data structures and abstract data types | ||

Data Structures and Abstract Data Types Quiz | ||

4. | Data Structures – Arrays (38 minutes) | What are array data structures? |

What are lists in Python? | ||

Arrays introduction – operations | ||

Lists in Python | ||

Lists in Python – advanced operations | ||

Lists in Python – list comprehension | ||

Arrays and Lists Quiz | ||

5. | Interview Questions – (Arrays) (01 hour 01 minutes) | Reversing an array in-place overview |

Reversing an array in-place solution | ||

Palindrome problem overview | ||

Palindrome problem solution | ||

Integer reversion problem overview | ||

Integer reversion problem solution | ||

Anagram problem overview | ||

Anagram problem solution | ||

Dutch national flag problem overview | ||

Dutch national flag problem theory | ||

Dutch national flag problem solution | ||

Trapping rain water problem overview | ||

Trapping rain water problem theory | ||

Trapping rain water problem solution | ||

6. | Data Structures – Linked Lists (48 minutes) | What are linked lists? |

Linked list introduction – operations | ||

Linked list implementation I | ||

Linked list implementation II | ||

Linked list implementation III | ||

Revisiting remove operation | ||

Comparing linked lists and arrays | ||

Practical (real-world) applications of linked lists | ||

Linked Lists Quiz | ||

7. | Data Structures – Doubly Linked Lists (19 minutes) | What are doubly linked lists? |

Doubly linked list implementation | ||

Running time comparison: linked lists and arrays | ||

Doubly Linked Lists Quiz | ||

8. | Interview Questions (Linked Lists) (12 minutes) | Finding the middle node in a linked list overview |

Finding the middle node in a linked list solution | ||

Reverse a linked list in-place overview | ||

Reverse a linked list in-place solution | ||

9. | Data Structures – Stacks (27 minutes) | What are stacks? |

Stacks in memory management (stacks and heaps) | ||

Stack memory visualization | ||

Stack implementation | ||

Practical (real-world) applications of stacks | ||

Stack Quiz | ||

10. | Data Structures – Queues (12 minutes) | What are queues? |

Queue implementation | ||

Queues Quiz | ||

11. | Interview Questions (Stacks and Queues) (17 minutes) | Max in a stack problem overview |

Max in a stack problem solution | ||

Queue with stack problem | ||

Queue with stack problem solution | ||

Queue with stack problem solution – recursion | ||

12. | Data Structures – Binary Search Trees (01 hour 27 minutes) | What are binary search trees? |

Binary search trees theory – search, insert | ||

Binary search trees theory – delete | ||

Binary search trees theory – in-order traversal | ||

Binary search trees theory – running times | ||

Binary search tree implementation I | ||

Binary search tree implementation II | ||

Stack memory visualization – finding max (min) items | ||

Stack memory visualization – tree traversal | ||

Binary search tree implementation III – remove operation | ||

Practical (real-world) applications of trees | ||

Binary Search Trees Quiz | ||

13. | Interview Questions (Binary Search Trees) (08 minutes) | Compare binary trees overview |

Compare binary trees solution | ||

14. | Data Structures – AVL Trees (01 hour 22 minutes) | Motivation behind balanced binary search trees |

What are AVL trees? | ||

AVL trees introduction – height | ||

AVL trees introduction – rotations | ||

AVL trees introduction – illustration | ||

AVL tree implementation I | ||

AVL tree implementation II | ||

AVL tree implementation III | ||

AVL tree implementation IV | ||

AVL tree implementation V | ||

Practical (real-world) applications of balanced binary search trees | ||

AVL Trees Quiz | ||

15. | Data Structures – Red-Black Trees (59 minutes) | What are red-black trees? |

The logic behind red-black trees | ||

Red-black trees – recoloring and rotation cases | ||

Red-black tree illustrations | ||

Red-black tree implementation I | ||

Red-black tree implementation II | ||

Red-black tree implementation III | ||

Red-black tree implementation IV | ||

Differences between red-black tree and AVL trees | ||

Red-Black Trees Quiz | ||

16. | Data Structures – Heaps (01 hour 11 minutes) | What are priority queues? |

Heap introduction – basics | ||

Heap introduction – array representation | ||

Heap introduction – remove operation | ||

Using heap data structure to sort (heapsort) | ||

Heap introduction – operations complexities | ||

Binomial and Fibonacci heaps | ||

Heap implementation I | ||

Heap implementation II | ||

Heap implementation III | ||

Heaps in Python | ||

Heaps Quiz | ||

17. | Interview Questions (Heaps) (14 minutes) | Interview question #1 – checking heap properties |

Interview question #1 – solution | ||

Interview question #2 – max heap to a min heap | ||

Interview question #2 – solution | ||

18. | Data Structures – Associative Arrays (Dictionaries) (01 hour 06 minutes) | What are associative arrays? |

Hashtable introduction – basics | ||

Hashtable introduction – collisions | ||

Hashtable introduction – dynamic resizing | ||

Linear probing implementation I | ||

Linear probing implementation II | ||

Linear probing implementation III | ||

Dictionaires in Python | ||

Why to use prime numbers in hashing? | ||

Practical (real-world) applications of hashing | ||

Dictionaries Quiz | ||

19. | ### GRAPH ALGORITHMS ### (18 minutes) | Graph theory overview |

Adjacency matrix and adjacency list | ||

Applications of graphs | ||

Graph Algorithms Overview Quiz | ||

20. | Graph Algorithms – Graph Traversal Algorithms (57 minutes) | Breadth-first search introduction |

Breadth-first search implementation | ||

What are WebCrawlers (core of search engines)? | ||

WebCrawler basic implementation | ||

Depth-first search introduction | ||

Depth-first search implementation | ||

Depth-first search implementation II | ||

Memory management: BFS vs DFS | ||

Graph traversal quiz | ||

21. | Interview Questions (Graph Traversal) (25 minutes) | Interview question #1 – implement DFS with recursion |

Interview question #1 – solution | ||

Depth-first search and stack memory visualisation | ||

Interview question #2 – using BFS to find way out of maze | ||

Interview question #2 – solution | ||

22. | Graph Algorithms – Shortest Paths with Dijkstra’s Algorithm (01 hour 18 minutes) | What is the shortest path problem? |

Dijkstra algorithm visualization | ||

Dijkstra algorithm implementation I – Edge, Node | ||

Dijkstra algorithm implementation II – algorithm | ||

Dijkstra algorithm implementation III – testing | ||

Dijktsra’s algorithm with adjacency matrix representation | ||

Adjacency matrix representation implementation | ||

Shortest path algorithms applications | ||

What is the critical path method (CPM)? | ||

Dijkstra’s Algorithm Quiz | ||

23. | Graph Algorithms – Shortest Paths with Bellman-Ford Algorithm (37 minutes) | What is the Bellman-Ford algorithm? |

Bellman-Ford algorithm visualization | ||

Bellman-Ford algorithm implementation I – Node, Edge | ||

Bellman-Ford algorithm implementation II – the algorithm | ||

Bellman-Ford algorithm implementation III – testing | ||

Greedy algorithm or dynamic programming approach? | ||

Bellman-Ford Algorithm Quiz | ||

24. | Interview Questions (Shortest Paths) (10 minutes) | Interview question #1 – detecting negative cycles on the FOREX |

How to use Bellman-Ford algorithm on the FOREX? | ||

Interview question #1 – solution | ||

25. | Graph Algorithms – Spanning Trees with Kruskal Algorithm (58 minutes) | What is the disjoint set data structure? |

Disjoint sets visualization | ||

Kruskal’s algorithm introduction | ||

Kruskal algorithm implementation I – basic classes | ||

Kruskal algorithm implementation II – disjoint set | ||

Kruskal algorithm implementation III – algorithm | ||

Kruskal algorithm implementation VI – testing | ||

Kruskal’s Algorithm Quiz | ||

26. | Graph Algorithms – Spanning Trees with Prims Algorithm (31 minutes) | What is the Prim-Jarnik algorithm? |

Prims-Jarnik algorithm implementation I | ||

Prims-Jarnik algorithm implementation II | ||

Comparing the spanning tree approaches | ||

Applications of spanning trees | ||

Prim’s Algorithm Quiz | ||

27. | Hamiltonian Cycles – Travelling Salesman Problem (49 minutes) | What are Hamiltonian cycles? |

The travelling salesman problem | ||

Travelling salesman problem implementation | ||

TSP and stack memory visualization | ||

Why to use meta-heuristics? | ||

Hamiltonian Problem Quiz | ||

28. | ### SUBSTRING SEARCH ALGORITHMS ### (02 hours 15 minutes) | Brute-force search introduction |

Brute-force substring search algorithm implementation | ||

Naive Substring Search Quiz | ||

Rabin-Karp algorithm introduction | ||

Rabin-Karp algorithm implementation | ||

Rabin-Karp Substring Search Quiz | ||

Knuth-Morris-Pratt algorithm introduction | ||

Constructing the partial match table – visualization | ||

Knuth-Morris-Pratt algorithm implementation | ||

Knuth-Morris-Pratt Algorithm Quiz | ||

Z algorithm introduction | ||

Z algorithm illustration | ||

Z algorithm implementation | ||

Z Algorithm Quiz | ||

Substring search algorithms comparison | ||

Applications of substring search | ||

29. | ### SORTING ALGORITHMS ### (03 hours 16 minutes) | Sorting introduction |

What is stability in sorting? | ||

What is adaptive sorting? | ||

Sorting Algorithms Basics Quiz | ||

Bogo sort introduction | ||

Bogo sort implementation | ||

Bogo Sort Quiz | ||

Bubble sort introduction | ||

Bubble sort implementation | ||

Selection sort introduction | ||

Selection sort implementation | ||

Selection Sort Quiz | ||

Insertion sort introduction | ||

Insertion sort implementation | ||

Sorting custom objects with insertion sort | ||

Solution – sorting custom objects with insertion sort | ||

Insertion Sort Quiz | ||

Shell sort introduction | ||

Shell sort implementation | ||

Shell Sort Quiz | ||

Quicksort introduction | ||

Quicksort introduction – example | ||

Quicksort implementation | ||

Hoare’s partitioning and Lomuto’s partitioning | ||

What is the worst-case scenario for quicksort? | ||

QuickSort Quiz | ||

Merge sort introduction | ||

Merge sort implementation | ||

Stack memory and merge sort visualization | ||

Merge Sort Quiz | ||

Hybrid algorithms introduction | ||

Non-comparison based algorithms | ||

Counting sort introduction | ||

Counting sort implementation | ||

Radix sort introduction | ||

Radix sort implementation | ||

Measure running time differences | ||

Non-Comparison Based Sorting Quiz | ||

30. | Interview Questions (Sorting) (01 minutes) | TimSort algorithm |

Interview question #1 – solution | ||

Quicksort with iteration | ||

Interview question #2 – solution | ||

Selection sort with recursion | ||

Interview question #3 – solution | ||

31. | ### APPENDIX – COMPLEXITY THEORY CRASH COURSE ### (59 minutes) | How to measure the running times of algorithms? |

Complexity theory illustration | ||

Complexity notations – big (O) ordo | ||

Complexity notations – big ? (omega) | ||

Complexity notations – big (?) theta | ||

Algorithm running times | ||

Complexity classes | ||

Analysis of algorithms – loops | ||

32. | Next Steps (33 seconds) | Next steps |

33. | Course Materials (DOWNLOADS) (00 seconds) | Download course materials (slides and source code) |

## Resources Required

- Basics of Python
- Some theoretical background (big O notation)

## Featured Review

**Dakota Hipp (5/5)**: Great information and well explained, I learned a lot in this course!

## Pros

**Shervin Goudarzi (5/5)**: Yes, it is a great experience; I have learned a lot!!!**Anonymized User (5/5)**: It’s the best Algo and DSA course with python on Udemy.**Tanner Barcelos (4/5)**: sets you up perfectly for LeetCode and Hackerank and of course, interviews.**Arjun VS (5/5)**: Update: thank you for updating the coding section, now it’s perfect.

## Cons

**Brady Dyson (2/5)**: This concept isn’t very difficult to understand, but I also already knew what a stack was.**Aarushi Singh (1/5)**: It’s difficult to understand as he is not doing anything on IDE, with no hands-on programming.**Yash Varshney (2/5)**: He used vert small fonts while doing programming which is very difficult to see. Please zoom in notepad++ .**Ayberk Koc (1/5)**: Also the course seems to be build up in a very lazy manner.

## About the Author

The course is taught by Holczer Balazs. He works as a software engineer at a multinational company. He offers a total of 32 courses on Udemy and has an average of 4.5 instructor rating based on over 33k reviews. He has taught 2,64,824 students so far.

- He is from Budapest, Hungary.
- He is qualified as a Physicist.
- He currently works for a multinational company as a simulation engineer.
- He developed an interest in algorithms and data structures, especially their implementations in Java since University.
- Subsequently, he learned how to solve differential equations using linear algebra, interpolation, and extrapolation, as well as other artificial intelligence and machine learning approaches.

## Comparison Table

Parameters | Algorithms and Data Structures in Python (INTERVIEW Q&A) | Recursion, Backtracking and Dynamic Programming in Python | Python 3: Deep Dive (Part 2 – Iteration, Generators) |
---|---|---|---|

Offers | INR 449 ( 84% off | INR 455 (87% off | INR 455 (87% off |

Duration | 23 hours | 16 hours | 36 hours |

Rating | 4.4/5 | 4.6 /5 | 4.9 /5 |

Student Enrollments | 27,267 | 9,832 | 28,599 |

Instructors | Holczer Balazs | Holczer Balazs | Fred Baptiste |

Register Here | Apply Now! | Apply Now! | Apply Now! |

## Leave feedback about this