B站好资源: python数据结构与算法(北大老师授课)

这次推荐的课程是北京大学陈斌老师的《python版数据结构与算法
一共有87个视频, 已经听了30+, 适合起步阶段对数据结构和算法有基本的认识, 是入门python编程的一门比较好的系列课程.
我对时间复杂度O 能有更好的理解, 是从陈老师这里学来的

数据结构与算法的重要性

编程 = 数据结构 + 算法

我相信很多人开始和我有一样的误区, 主要源自于对算法和数据结构的理解不清楚.

机器学习那么多分类回归算法, 是不是算法? 当然算! 但是这些算法是针对于机器学习领域的, 你可以用这些算法去进行数据挖掘,打数据科学的比赛等等, 但是请记住这里的算法是“专业领域算法”, 是对数据进行建模的.

通常意义上说的算法, 是指“查询”, “排序”等这类方法, 是更为基础的算法. 比如你在使用KNN的时候, 采用sorted()函数, 对计算的距离进行排序, 取前K个距离最近样本的标签做投票, 这里就用到了排序方法.

因为 python是模块化非常好的编程语言, python有很多功能强大的包可以调用, 所以在平常进行数据分析的过程中,我是很少接触底层算法实现的, 但是其依然重要, 在刷leetcode, 面试的时候, 考察的是对基础算法的实现.

某次面试, 一道编程题, “两个有序数组合并, 求出中值”, 直接上去掉numpy的包, 用np.median()函数 … 考官ios:直接调包, 我还TM用你写啥…心态崩了, 其实这题主要是考察排序算法. 不同排序方法有不同的时间复杂度, 一般快排是最优方法.

对于数据结构, 我尽量用最简单和直观的语言来概括:

数据结构是逻辑层面的, 编程语言是不同的实例. 堆、栈、队列、链表…每种语言都有自己的实现方式, 你在刷leetcode时候, 筛选条件是不是有对不同数据结构类型的题型选择? 还可以选择编程语言? 数据结构和基础算法是原料和配方, 不同的大厨(编程语言)做菜的速度, 效率是不同的.

至于python, 本身是没有堆栈等数据类型的, 但是可以用list,dict等基础数据类型来实现堆栈的思想.

不对请指正, 如果解决了你心中的疑惑, 请勿吝关注与赐赞.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值