如何有效的学习数据结构和算法这门课程

大家刚开始学习数据结构和算法这门课时候,可能会觉得自己的脑子不够用。这个主要是因为大家没有找个一个好的学习方法,而且没有抓住学习的重点,今天就给大家画画数据结构学习的重点。

首先简单说一下什么是数据结构什么是算法。数据结构就是对数据的存储的结构,而算法是数据操作的的方法,打个比方,图书馆储藏图书,都是按照图书类别分门别类来进行“存储”,放在书架上面的,这个过程就是对数据结构来进行存储的过程。当我需要查找图书时候,可以一本一本地找,也可以先按照分类来找个大类,然后再依次查找,这个就是对数据进行查找(操作)。从这里可以看出,数据结构和算法是相辅相成的,数据结构为算法服务,算法需要作用到具体的具体的数据结构。

比如数据具有随机访问的能力,我们在进行二分查找的时候可以选择数组来存储。但是如果我们选择了链表这种数据结构,不具备随机访问的能力,所以就不合适。

数据结构学习的重点在哪里,今天列举给大家看看。

1.首先需要掌握一个最重要的概念,复杂度分析,这个在数据结构中占据半壁江山,是基础中的基础,必须做到非常熟练,后面才能学习的更加扎实一些。数据结构解决的就是如何更省,更快存储数据结构和操作数据,这是一个消耗时间和空间的事情,需要一个衡量值来评估,复杂度分析就是做这个事情的。如果在后面你只是学会了几个数据结构,没有学会复杂度分析,这就相当于学习降龙十八掌只是学会了几个招式,没有真正学到他的心法秘诀,所以才强调复杂度分析的重要性。

2.等复杂度分析学好后。后面开始真正的数据结构的学习了。这门课主要学习了20个最常用的数据结构和算法。10个数据结构,数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树,10个算法,递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

掌握了这些数据结构和算法,以后学习更难得数据结构和算法,就非常容易了。

学习数据结构不要只是死记硬背,需要了解他的来历,自身特点和应用场景,课程中会对这几个方面进行讲解。学习数据结构和算法是一个思辨的过程,多问几个为什么,这样在以后自己的代码中就会少出来复杂度高的垃圾代码了。

学习方法

1.边学边练。每个算法都自己独立的实现一次。彻底搞懂为止,这个过程必须慢,不能急于求成,实现过程中可以多思考。等可以自己实现完成后,去leetcode上面找一些题目练习,不要沉迷刷题,主要是搞懂课程内的数据结构和算法。一般公司面试都没有问题。BAT

2.不懂得可以去群里问大佬,最终还是要自己思考完成。

3.每篇文章给自己设立一个学习目标,学一篇好的学习笔记,争取大家都能看懂,也可以对课程挑刺,找到讲的不清楚的地方。这个就是能坚持下来的方法。给自己一个学习目标吧。

4.知识需要积累沉淀,不要急于求成,在学习数据结构和算法时候一定会遇到拦路虎的,这个时候可以先跳过,去请教大佬,在回头看一次,多回头看几次就能有一些感悟,知识的学习是一个反复迭代和不断沉淀的过程。可以先停下来,沉淀一下,后来再来学习就会恍然大悟了。书读百遍其意自现,这是非常有道理的。

 

我在之前也学习过一些数据结构和算法,学到递归这块的时候就比较困难了,就是对递归的写法不是很清楚,中止条件和拼凑原问题答案这两个关键步骤,不是很清楚,就慢慢放弃了,希望这次能坚持下去。

我的学习目标就是每次都能学一篇学习分享给大家,希望大家喜欢,多多评论批评。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值