导论-数据结构和算法学习

导论-数据结构和算法学习

01 | 学习的目的

1、导读

1)想要通关大厂面试,千万别让数据结构和算法拖了后腿
2)学任何知识都是为了“用”的,是为了解决实际工作中的问题
3)对各种框架、中间件和底层系统,不需要自己实现,并不代表什么都不需要了解
4)在这些基础框架中,一般都揉和了很多基础数据结构和算法的设计思想
5)掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的
6)掌握了数据结构与算法,看待问题的深度,解决问题的角度就会完全不一样

2、好处

1)直接好处是能够有写出性能更优的代码
2)算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面。
3)长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一

02 | 数据结构和算法概念

1)数据结构和算法不易学懂的原因是没有找到好的学习方法,没有抓住学习的重点
2)广义层面:数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。
3)狭义层面:指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等
4)二者的关系:数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上

03 | 学习重点

1、导读

1)想要学习数据结构与算法,首先要掌握一个数据结构与算法中最重要的概念——复杂度分析
2)学习要学会找重点,如果不分重点地学习,眉毛胡子一把抓,学起来肯定会比较吃力。
3)总结了 20 个最常用的、最基础数据结构与算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这 20 个知识点就足够了
4)学习数据结构和算法不要死记硬背,要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”

2、10个数据结构

1)数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树

3、10个算法

1)递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

04 | 学习技巧

1、边学边练,适度刷题

1)可以“适度”刷题,但一定不要浪费太多时间在刷题上。我们学习的目的还是掌握,然后应用。

2、多问、多思考、多互动

1)学习最好的方法是,找到几个人一起学习,一块儿讨论切磋,有问题及时寻求老师答疑

3、打怪升级学习法

1)学习的过程中,我们碰到最大的问题就是,坚持不下来
2)我们在枯燥的学习过程中,也可以给自己设立一个切实可行的目标:总结课程内容写博客;练习课程代码,提交github

4、知识需要沉淀,不要想试图一下子掌握所有

1)在学习的过程中,一定会碰到“拦路虎”。如果哪个知识点没有怎么学懂,不要着急,这是正常的
2)不可能学习一遍就能掌握所有知识,学习知识的过程是反复迭代、不断沉淀的过程
3)遇到“拦路虎”,可以先沉淀一下,过几天在重新学习一遍。

05 | 小结

1、学习重点

1)复杂度分析,10 个数据结构和 10 个算法
2)只要掌握这些内容,应付日常的面试、工作,基本不会有问题

2、学习技巧

1)边学边练、多问、多思考
2)两个通用的学习方法:打怪升级法和沉淀法

06 | 思维导图

1、导论-数据结构和算法学习思维导图
在这里插入图片描述

参考文献:

[1] 王争. 数据结构和算法之美[M]. 极客时间, 2018.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值