Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ Microsoft AZ-900
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Data Science Python

Recursion, Backtracking and Dynamic Programming in Python

Learn Recursion, Backtracking, Divide and Conquer Methods and Dynamic programming via Examples and Problems in Python
Rating: 4.8 out of 54.8 (375 ratings)
5,547 students
Created by Holczer Balazs
Last updated 2/2021
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Understanding recursion
  • Understand backtracking
  • Understand dynamic programming
  • Understand divide and conquer methods
  • Implement 15+ algorithmic problems from scratch
  • Improve your problem solving skills and become a stronger developer
Curated for the Udemy for Business collection

Course content

10 sections • 91 lectures • 9h 9m total length

  • Preview02:06

  • Preview03:44
  • Stack memory and heap memory simulation
    06:14
  • Stack Memory and Heap Memory Quiz
    3 questions
  • What is recursion (recursive function call)?
    Preview06:13
  • Preview08:58
  • Recursion and stack memory (stack overflow)
    10:09
  • Recursion optimization in Python
    00:43
  • Recursion Quiz
    3 questions
  • Factorial problem - with head recursion
    06:11
  • Factorial problem - visualizing the stack
    04:14
  • Transforming a head recursion into a tail recursion
    05:19
  • Fibonacci numbers problem - with head recursion
    06:44
  • Fibonacci numbers - visualizing the stack memory
    08:59
  • Exercise - Fibonacci-numbers with tail recursion
    00:12
  • Solution - Fibonacci-numbers with tail recursion
    00:31
  • Towers of Hanoi introduction
    06:00
  • Towers of Hanoi implementation
    07:56
  • Towers of Hanoi - visualizing the stack
    07:08
  • Exercise - solving recursion with iteration
    00:08
  • Solution - solving recursion with iteration
    00:06
  • Recursion and iteration revisited
    01:42
  • Recursive Problems Quiz
    3 questions

  • What is linear search?
    01:38
  • Linear search implementation
    03:11
  • Exercise - linear search with recursion
    00:06
  • Solution - linear search with recursion
    00:11
  • What is binary (logarithmic) search?
    03:48
  • Binary search implementation
    08:23
  • Search Algorithms Quiz
    3 questions

  • Selection algorithms introduction
    06:42
  • Quickselect introduction - Hoare algorithm
    09:48
  • Quickselect visualization
    08:51
  • Hoare's Quickselect Quiz
    4 questions
  • Quickselect implementation
    10:30
  • Exercise - sorting with selection
    00:08
  • Solution - sorting with selection
    00:34
  • What the problem with pivots?
    05:49
  • Selection Algorithms Pivoting Quiz
    3 questions
  • Advanced selection - median of medians, introselect
    07:30
  • Median of medians algorithm implementation
    14:04
  • Introselect algorithm - power of combining algorithms
    01:22
  • Online selection - the secretary problem
    08:01
  • Selection Algorithms Quiz
    2 questions

  • Preview05:49
  • Brute-force search and backtracking
    04:02
  • Backtracking Quiz
    3 questions
  • Preview08:06
  • What is the search tree?
    03:09
  • N-queens problem implementation I
    Preview12:20
  • N-queens problem implementation II
    09:36
  • N-queens problem and stack memory visualization
    06:21
  • How to earn $1 million with N-queens problem?
    00:52
  • Hamiltonian paths (and cycles) introduction
    08:02
  • Hamiltonian cycle illustration
    04:41
  • Hamiltonian path implementation I
    05:05
  • Hamiltonian path implementation II
    06:38
  • Exercise - finding Hamiltonian cycle
    00:16
  • Solution - finding Hamiltonian cycle
    00:47
  • Coloring problem introduction
    08:48
  • Coloring problem visualization
    04:32
  • Coloring problem implementation
    10:48
  • Knight's tour introduction
    03:54
  • Knight's tour implementation I
    13:01
  • Knight's tour implementation II
    05:22
  • Maze problem introduction
    04:58
  • Maze problem implementation
    07:59
  • What is the problem with backtracking?
    05:04
  • Backtracking Problems Quiz
    3 questions

  • Dynamic programming introduction
    08:23
  • Dynamic Programming Quiz
    3 questions
  • Fibonacci numbers introduction
    03:30
  • Fibonacci numbers implementation
    07:57
  • Knapsack problem introduction
    18:07
  • Knapsack problem example
    12:58
  • Exercise - knapsack problem with recursion
    00:32
  • Solution - knapsack problem with recursion
    00:22
  • Knapsack problem implementation
    10:07
  • Rod cutting problem introduction
    08:03
  • Rod cutting problem example
    11:06
  • Rod cutting problem implementation
    08:48
  • Subset sum problem introduction
    10:11
  • Subset sum problem example
    09:08
  • Subset sum implementation
    10:33
  • Dynamic Programming Final Quiz
    3 questions

  • Bin packing problem introduction
    08:09
  • Bin packing problem implementation
    13:53
  • Bin packing problem - useful article
    00:04
  • Bin Packing Quiz
    3 questions

  • What are divide-and-conquer approaches?
    09:23
  • Divide and Conquer Quiz
    3 questions
  • Binary search revisited
    04:17
  • Merge sort theory
    08:17
  • Merge sort implementation
    08:22
  • Merge sort and stack memory visualization
    07:49
  • Exercise - sort the items in descending order
    00:08
  • Solution - sort the items in descending order
    00:36
  • Closes pair of points problem introduction I
    15:20
  • Closes pair of points problem introduction II
    04:14
  • Closes pair of points problem implementation
    22:42
  • Closest pair of points - useful article
    00:23
  • Closest Pair of Points Quiz
    5 questions

  • Course materials (slides and source code)
    00:02

  • Algorithms Visualization App
    00:41
  • Algorhyme - Algorithms and Data Structures
    00:53

Requirements

  • Basic Python

Description

This course is about the fundamental concepts of algorithmic problems focusing on recursion, backtracking, dynamic programming and divide and conquer approaches. As far as I am concerned, these techniques are very important nowadays, algorithms can be used (and have several applications) in several fields from software engineering to investment banking or R&D.

Section 1 - RECURSION

  • what are recursion and recursive methods

  • stack memory and heap memory overview

  • what is stack overflow?

  • Fibonacci numbers

  • factorial function

  • tower of Hanoi problem

Section 2 - SEARCH ALGORITHMS

  • linear search approach

  • binary search algorithm

Section 3 - SELECTION ALGORITHMS

  • what are selection algorithms?

  • how to find the k-th order statistics in O(N) linear running time?

  • quickselect algorithm

  • median of medians algorithm

  • the secretary problem

Section 4 - BACKTRACKING

  • what is backtracking?

  • n-queens problem

  • Hamiltonian cycle problem

  • coloring problem

  • knight's tour problem

  • maze problem

Section 5 - DYNAMIC PROGRAMMING

  • what is dynamic programming?

  • knapsack problem

  • rod cutting problem

  • subset sum problem

Section 6 - OPTIMAL PACKING 

  • what is optimal packing?

  • bin packing problem


Section 7 - DIVIDE AND CONQUER APPROACHES

  • what is the divide and conquer approach?

  • dynamic programming and divide and conquer method

  • how to achieve sorting in O(NlogN) with merge sort?

  • the closest pair of points problem

In each section we will talk about the theoretical background for all of these algorithms then we are going to implement these problems together from scratch in Python.

Thanks for joining the course, let's get started!

Who this course is for:

  • This course is meant for newbies who are not familiar with algorithmic problems in the main or students looking for some refresher
  • Anyone preparing for programming interviews or interested in improving their problem solving skills

Instructor

Holczer Balazs
Software Engineer
Holczer Balazs
  • 4.5 Instructor Rating
  • 22,335 Reviews
  • 184,863 Students
  • 33 Courses

Hi! 

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.

Take a look at my website if you are interested in these topics!

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.