
通过 Python 中的示例和问题学习递归、回溯、分而治之方法和动态编程。
本课程是关于算法问题的基本概念,重点是递归、回溯、动态规划和分治法。就我而言,这些技术如今非常重要,算法可以在从软件工程到投资银行或研发的多个领域中使用(并有多种应用)。
第 1 节 – 递归
什么是递归和递归方法
堆栈内存和堆内存概述
什么是堆栈溢出?
斐波那契数列
阶乘函数
河内塔问题
第 2 节 – 搜索算法
线性搜索方法
二分查找算法
第 3 节 – 选择算法
什么是选择算法?
如何在 O(N) 线性运行时间中找到第 k 阶统计信息?
快速选择算法
中位数算法
秘书问题
第 4 节 – 回溯
什么是回溯?
n-皇后问题
哈密顿循环问题
着色问题
骑士之旅问题
迷宫问题
第 5 节 – 动态编程
什么是动态规划?
背包问题
杆切割问题
子集和问题
第 6 节 – 最佳包装
什么是最佳包装?
装箱问题
第 7 节 – 分而治之的方法
什么是分而治之的方法?
动态规划和分治法
如何使用归并排序在 O(NlogN) 中实现排序?
最近点对问题
在每一节中,我们将讨论所有这些算法的理论背景,然后我们将在 Python 中从头开始实现这些问题。
Learn Recursion, Backtracking, Divide and Conquer Methods and Dynamic programming via Examples and Problems in Python
MP4 | Video: h264, 1280×720 | Audio: AAC, 44.1 KHz, 2 Ch
Genre: eLearning | Language: English + srt | Duration: 91 lectures (9h 9m) | Size: 1.33 GB
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
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
原创文章,作者:steven,如若转载,请注明出处:https://rr3d.cn/19939.html