怎么高效的学习数据结构和算法?
Posted 三更编程菌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么高效的学习数据结构和算法?相关的知识,希望对你有一定的参考价值。
学习的难度是什么?
我觉得学习方法是一部分,还有一些其他的个人原因,比如遇到问题,一段时间内找不到解决办法,就感到自己的太难了,不想学习了。
没有人可以共同学习,感觉一个人太没意思了,没有人可以互相督促。今天举办的算法营就是解决后面的问题,集合一群人,共同攻克一个目标。
遇到问题可以相互解决一下,学习过程中互相督促,共同进步才是我们最终的目的。
学习小技巧有哪些
除了团队学习,还要了解一些学习方法,这才能让我们更加高效的学习。废话不多,直接上结果:
1、学习、总结,学习的知识,并不是说看一遍,或者听一遍就可以了,如果是这样子,我们 天天都去刷课就可以学会了,就像网上的一句话,收藏就等于学会了。从我的角度来说,很多东西,看上三五遍我都不能记住,可能在做的各位都比我优秀。
我觉得做笔记还是有必要的,可以提取最重要的内容,我们记下最重要的知识点,复习的时候,只要看这些知识点就可以啦,可以节省很多时间。
我个人觉得很多东西,记一记画一画,印象会深刻一点。
2、多思考、多问、多互动。不管是一个人还是一群人,都要多思考,想一想为什么是这样子的,与自己原来的想法有什么不一样的地方。
找不到人解决问题的时候,多去百度一下,善于利用搜索引擎。
一群人的时候,更要用到当前的环境,从学生时代结束以后,现在很难遇到一群人凑一起去学习同一个东西了,如果有这样的机会,一定要多去沟通,同一个知识点,不同的知识点,不同的人有不同的见解,或许会打开一扇新的大门呢。
3、练习,一定要练习,学生时代都是做练习和考试检测知识,现在的我们也一样,想要完全掌握一个知识点,除了我们自以为的学会,还要有检测的方法,比如做练习题,比如把学到的知识讲给别人听,毕竟教是最好的学,如果有人能提出问题,又能帮我们复习一遍知识,说不定还能找到知识的盲点。
4、贪多嚼不烂,适度学习。适度学习,很多时候,我们看到一堆课程,可能会想着什么时候能刷完,我是不是三天可以看完?不要有这么疯狂的想法,我们不是神。
有时候欲速则不达,一定要根据实际情况安排合理的计划,学习本来就是一个漫长的过程,不能一口吃成胖子,很多知识点学的太多就会记不牢,理解不到位,还很容易遗忘。学习的目的是为了学会一个东西,真正的掌握是做到用到实际生活中。
5、一定要坚持,说实话,学习并不是我快乐!这是一个漫长的而且枯燥的过程,不能想嗑瓜子一样,很快得到成效,尤其是学习一些基础知识的时候。
所以这要考验我们的耐心了,面对这样的现状,我想到解决办法就是团体学习,互相督促,共同进步吧。
另外一点就是就是知识点拆开,一个一个的来。每解决一个都算一个进步,每天都在成长,希望日后你可以选择自己想要的生活。
数据结构和算法是什么?
聊完学习那些事,我们聊聊数据结构和算法。什么是数据结构?什么又是算法?
我想我们看过的教材都很多,但是上面都是一大堆文字定义,看着就头疼,有些内容还特别抽象,很难去理解。
我们现在的学习不是为了考试,所以我们不用死记硬背这些东西,我们要学会去理解。
数据结构是什么?从字面意思来说,就是数据的结构,也就是存放数据的结构。就好像是存钱罐,存放钱的罐子,它有不同的结构,小猪,小猫,小狗等等各种的形状,铜的铁的塑料的,各种不同的材质。
再比如豆豆开个一个小卖部,里面买辣条,辣条放在货架上,或者盒子里,然后在相应的位置贴上辣条的信息,货架和盒子是不是这种数据结构?
什么是算法?同学们来小卖部买东西,他们想按照辣条的重量,看一看哪一种更压饿。泡面它不香吗?(小声逼逼)
然后他们让豆豆按照重量排个序,这时候是不是可以把所有的辣条拿下来,然后按照重量从小到大的顺序在放上去?是不是也可以直接不拿下来,直接交换不同辣条的位置,做到最终的结果是正确的?这两种操作是不是不同的算法?
那我们学的是什么?简单的来说,emmm……我们要去学怎么去帮豆豆对辣条排序?
我们操作的是数据,包含的结构有什么呢?数组、队列、树、栈、堆和图等。我们比较常见的算法,排序、二分法、动态规划等等。这些东西很多都是大佬们总结出来的经验,我们都是学会怎么用而已,不需要我们去创造新的东西,
我觉得课程里面有一句话说的很对,数据结构是为算法服务的,算法要作用在特定的算法节结构上。数据结构和算法是不能拆开讲的,这就像为什么不用栈做排序,而用数组或者链表。
而且很有意思的一点,如果去买一本算法书,里面都会见到一些数据结构之类的东西,比如某黄皮书《算法》,Java写的算法,一个名为算法的书,里面都会讲一些数据结构相关的知识。
学习的重点是什么?
数据结构和算法的内容有很多,我们有时不知道该怎么去做,按照什么样的路线去学习。不知道并不可怕,可怕的是不知道还不去找方法。
我们可以找大佬的学习路线, 抄这个作业也是可以的。每一份精品课程都是经过实践和改革的,我们按照路线结合实际时间安排去学习,也可以达到更好的效果的。
算法里面有一个很重要的知识点,每本经典算法书都会在开篇讲上一讲,你猜这是什么?
肯定就是复杂度分析,这是一个很重要的东西,包括空间复杂度和时间复杂度。算法的好坏都体现在这上面了,我们刷算法题的时候,也可以看上每道题目上面都有时间和内存的限制。
复杂度分析是最基础的东西,可以帮我们去分析一个算法的好坏,对自己的做算法也有很大的帮助,关于复杂度的知识,我们下节再聊。
文末点个赞走一波,十分感谢
以上是关于怎么高效的学习数据结构和算法?的主要内容,如果未能解决你的问题,请参考以下文章