Python 算法与数据结构视频教程
课程简介
数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的系统中文资料比较欠缺,
笔者尝试录制视频教程帮助 Python 开发者掌握常用算法和数据结构,提升开发技能。
本教程是付费教程(文字内容和代码免费),因为笔者录制的过程中除了购买软件、手写板等硬件之外,业余需要花费很多时间和精力来录制视频、查资料、编写课件和代码,养家糊口不容易,希望大家体谅。
链接
视频教程已经发布在网易云课堂和 csdn 学院,内容一致,推荐使用网易云课堂。
电子书地址:
leetcode 实战教程(推荐):
如果您有一定的基础,只是想快速针对面试刷题,也可以直接参考笔者针对《剑指offer》和 leetcode 经典题目的 Python 刷题图解实战。
痛点
讲 Python 数据结构和算法的资料很少,中文资料更少
很多自学 Python 的工程师对基础不够重视,面试也发现很多数据结构和算法不过关,很多人挂在了基础的数据结构和算法上
缺少工程应用场景下的讲解,很多讲算法的资料太『教科书化』。本书实现的代码工程上可用
网上很多视频教程不够循序渐进,不成系统
作者简介
曾就职于知乎,现腾讯视频后端工程师,多年 Python/Go 开发经验。
知乎专栏:
课程内容
包括我们在业务开发和面试中常用的算法和数据结构,希望可以帮助 Python 开发者快速上手,很多老手写业务代码写多了很多基础知识忘记了,
也可以作为回顾。课程尽量用通俗的方式讲解,结合 python 语言和日常开发实践的经验。书中代码可以作为大家的面试笔试参考。
对于每个算法和用到的数据结构我们需要知道:
原理
Python 实现方式
时间、空间复杂度
使用场景,什么时候用
目录结构
这里讲解的章节我参考了下边教材中列举的一些书籍,并且自己设计了大纲,争取做到循序渐进,简单实用。因为实现一些高级数据结构的时候会用到
很多底层数据结构,防止跳跃太大导致读者理解困难。
课程的目录结构如下,每一章都有配套的文字讲义(markdown),示例代码,视频讲解,详细的讲解一般会放在视频里,使用手写板来
进行板书,包括文字、图示、手动模拟算法过程等。
课程介绍
课程简介之笨方法学算法
抽象数据类型 ADT,面向对象编程
数组和列表
链表,高级链表。双链表,循环双端链表
队列,双端队列,循环双端队列
栈,栈溢出
算法分析,时间复杂度 大O 表示法
哈希表,散列冲突
字典
集合
递归
查找:线性查找和二分查找
基本排序算法: 冒泡、选择、插入排序
高级排序算法: 归并排序、快排
树,二叉树
堆与堆排序
优先级队列
二叉查找树
图与图的遍历
python 内置常用数据结构和算法的使用。list, dict, set, collections 模块,heapq 模块
面试笔试常考算法
编程语言
我们这里使用最近很火的Python。Python 入门简单而且是个多面手,在爬虫、web 后端、运维、数据分析、AI