怎么高效的学习数据结构和算法?

简介: 怎么高效的学习数据结构和算法?

怎么高效的学习数据结构和算法?

提到数据结构和算法,是不是想到计算机?想到那些复杂的内容,瞬间感到头大。曾经我看这门课的时候也是一脸懵逼,那时候慢慢的也能看懂,可惜最后没有坚持下去啊,这一次一定搞定它,没有下次一定。


学习的难度是什么?

我觉得学习方法是一部分,还有一些其他的个人原因,比如遇到问题,一段时间内找不到解决办法,就感到自己的太难了,不想学习了。


没有人可以共同学习,感觉一个人太没意思了,没有人可以互相督促。今天举办的算法营就是解决后面的问题,集合一群人,共同攻克一个目标。


遇到问题可以相互解决一下,学习过程中互相督促,共同进步才是我们最终的目的。



学习小技巧有哪些

除了团队学习,还要了解一些学习方法,这才能让我们更加高效的学习。废话不多,直接上结果:


1、学习、总结,学习的知识,并不是说看一遍,或者听一遍就可以了,如果是这样子,我们 天天都去刷课就可以学会了,就像网上的一句话,收藏就等于学会了。从我的角度来说,很多东西,看上三五遍我都不能记住,可能在做的各位都比我优秀。


我觉得做笔记还是有必要的,可以提取最重要的内容,我们记下最重要的知识点,复习的时候,只要看这些知识点就可以啦,可以节省很多时间。


我个人觉得很多东西,记一记画一画,印象会深刻一点。


2、多思考、多问、多互动。不管是一个人还是一群人,都要多思考,想一想为什么是这样子的,与自己原来的想法有什么不一样的地方。


找不到人解决问题的时候,多去百度一下,善于利用搜索引擎。


一群人的时候,更要用到当前的环境,从学生时代结束以后,现在很难遇到一群人凑一起去学习同一个东西了,如果有这样的机会,一定要多去沟通,同一个知识点,不同的知识点,不同的人有不同的见解,或许会打开一扇新的大门呢。


3、练习,一定要练习,学生时代都是做练习和考试检测知识,现在的我们也一样,想要完全掌握一个知识点,除了我们自以为的学会,还要有检测的方法,比如做练习题,比如把学到的知识讲给别人听,毕竟教是最好的学,如果有人能提出问题,又能帮我们复习一遍知识,说不定还能找到知识的盲点。


4、贪多嚼不烂,适度学习。适度学习,很多时候,我们看到一堆课程,可能会想着什么时候能刷完,我是不是三天可以看完?不要有这么疯狂的想法,我们不是神。


有时候欲速则不达,一定要根据实际情况安排合理的计划,学习本来就是一个漫长的过程,不能一口吃成胖子,很多知识点学的太多就会记不牢,理解不到位,还很容易遗忘。学习的目的是为了学会一个东西,真正的掌握是做到用到实际生活中。


5、一定要坚持,说实话,学习并不是我快乐!这是一个漫长的而且枯燥的过程,不能想嗑瓜子一样,很快得到成效,尤其是学习一些基础知识的时候。


所以这要考验我们的耐心了,面对这样的现状,我想到解决办法就是团体学习,互相督促,共同进步吧。


另外一点就是就是知识点拆开,一个一个的来。每解决一个都算一个进步,每天都在成长,希望日后你可以选择自己想要的生活。


数据结构和算法是什么?

聊完学习那些事,我们聊聊数据结构和算法。什么是数据结构?什么又是算法?


我想我们看过的教材都很多,但是上面都是一大堆文字定义,看着就头疼,有些内容还特别抽象,很难去理解。


我们现在的学习不是为了考试,所以我们不用死记硬背这些东西,我们要学会去理解。


数据结构是什么?从字面意思来说,就是数据的结构,也就是存放数据的结构。就好像是存钱罐,存放钱的罐子,它有不同的结构,小猪,小猫,小狗等等各种的形状,铜的铁的塑料的,各种不同的材质。


再比如豆豆开个一个小卖部,里面买辣条,辣条放在货架上,或者盒子里,然后在相应的位置贴上辣条的信息,货架和盒子是不是这种数据结构?


什么是算法?同学们来小卖部买东西,他们想按照辣条的重量,看一看哪一种更压饿。泡面它不香吗?(小声逼逼)



然后他们让豆豆按照重量排个序,这时候是不是可以把所有的辣条拿下来,然后按照重量从小到大的顺序在放上去?是不是也可以直接不拿下来,直接交换不同辣条的位置,做到最终的结果是正确的?这两种操作是不是不同的算法?


那我们学的是什么?简单的来说,emmm……我们要去学怎么去帮豆豆对辣条排序?



我们操作的是数据,包含的结构有什么呢?数组、队列、树、栈、堆和图等。我们比较常见的算法,排序、二分法、动态规划等等。这些东西很多都是大佬们总结出来的经验,我们都是学会怎么用而已,不需要我们去创造新的东西,


我觉得课程里面有一句话说的很对,数据结构是为算法服务的,算法要作用在特定的算法节结构上。数据结构和算法是不能拆开讲的,这就像为什么不用栈做排序,而用数组或者链表。


而且很有意思的一点,如果去买一本算法书,里面都会见到一些数据结构之类的东西,比如某黄皮书《算法》,Java写的算法,一个名为算法的书,里面都会讲一些数据结构相关的知识。


学习的重点是什么?

数据结构和算法的内容有很多,我们有时不知道该怎么去做,按照什么样的路线去学习。不知道并不可怕,可怕的是不知道还不去找方法。


我们可以找大佬的学习路线, 抄这个作业也是可以的。每一份精品课程都是经过实践和改革的,我们按照路线结合实际时间安排去学习,也可以达到更好的效果的。


算法里面有一个很重要的知识点,每本经典算法书都会在开篇讲上一讲,你猜这是什么?


肯定就是复杂度分析,这是一个很重要的东西,包括空间复杂度和时间复杂度。法的好坏都体现在这上面了,我们刷算法题的时候,也可以看上每道题目上面都有时间和内存的限制。

目录
相关文章
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】关联规则学习:Apriori算法详解
【4月更文挑战第30天】Apriori算法是一种用于关联规则学习的经典算法,尤其适用于购物篮分析,以发现商品间的购买关联。该算法基于支持度和置信度指标,通过迭代生成频繁项集并提取满足阈值的规则。Python中可借助mlxtend库实现Apriori,例如处理购物篮数据,设置支持度和置信度阈值,找出相关规则。
|
2天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
3天前
|
存储 机器学习/深度学习 算法
|
6天前
|
算法 索引
数据结构于算法-基础排序
数据结构于算法-基础排序
6 0
|
7天前
|
存储 算法 Python
程序设计的艺术:算法与数据结构的魅力
程序设计的艺术:算法与数据结构的魅力
6 0
|
7天前
|
存储 算法
数据结构开篇(普普通通浅浅聊数据结构)什么是数据结构 、什么是算法、重要性、如何学好数据结构呢
数据结构开篇(普普通通浅浅聊数据结构)什么是数据结构 、什么是算法、重要性、如何学好数据结构呢
|
15天前
|
存储 人工智能 算法
有哪些数据结构与算法是程序员必须要掌握的?——“数据结构与算法”
有哪些数据结构与算法是程序员必须要掌握的?——“数据结构与算法”
|
15天前
|
机器学习/深度学习 算法 前端开发
Scikit-learn进阶:探索集成学习算法
【4月更文挑战第17天】本文介绍了Scikit-learn中的集成学习算法,包括Bagging(如RandomForest)、Boosting(AdaBoost、GradientBoosting)和Stacking。通过结合多个学习器,集成学习能提高模型性能,减少偏差和方差。文中展示了如何使用Scikit-learn实现这些算法,并提供示例代码,帮助读者理解和应用集成学习提升模型预测准确性。
|
15天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
21 0
|
16天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
59 0