不到50天 零基础 如何学习【数据结构】?

转载于知乎

点击原文链接,可进入原问题

考研计算机,还剩50天,目前零基础,如何学习数据结构?

题主情况:

1.零基础跨专业考研计算机,目前数学英语进度不错。但专业课…因为c语言也是零基础,前期看c语言太拖太慢,现在才刚刚把c语言看完,专业课还没开始。

2.报的是专硕,专业课自命题,就考一门数据结构,范围和408一样,往届同学说题目比较基础。

3.现在数据结构一页没看,买的天勤和大话都还是新的,完全零基础……剩50天不到了。

不知道有没有可行的较高效的学习方法?另外,c语言的哪些部分需要很熟悉?很惭愧地求前辈赐教。(也不知怎么感谢各位)

-----

ps c语言的链表 串 排序这些内容,在数据结构里有,学c时是不是就不用专门看了?

-----

时间紧张 ,没法一一回复各位的回答,但每天都会看。很感谢前辈研友的分享!

一夜九卷的cxc,游戏开发

首先反对一下那个说50天刷两遍数据结构的朋友,如果你是天才,那可以不用继续看我后面的内容了,相信天才也不会来知乎问怎么复习对吧?

考研是选拔性考试,对知识点的各种细节的掌握以及深入理解要求非常高。

如果仅仅是熟悉一下各种数据结构的实现以及怎么使用(比如STL),而不去抠定义以及各种细节来在规定的时间内把题目做对的话,50天理解能力强的人确实可以过两遍。

但是对于考研来说,这种不以应试为目的的过两遍,没有任何意义。

我去年考的408+数一,也是跨考不过不是0基础,有C/C++基础和一些七零八碎的基础。题主初试只考数据结构我猜是中南大学?

如果只有50天的话,要达到考研408中数据结构需要的水平,我个人觉得肯定是不够的,首先,教材是严蔚敏的数据结构(C描述),这本书难度比较大,而且写的非常专业,光吃透这本教材没有个两三遍是很难深入理解的,我当初第一遍花了一个半月,然后配合做题+第二遍,远远超过了50天,我估计100天都有。

考试的时间有限,题量还不小,那些常见的算法,比如二叉树的非递归遍历算法,求宽度,高度,各种排序算法,堆排序的调节算法,AVL的各种旋转算法,KMP中求Next数组的算法,等等起码要能熟练而且迅速的写出来代码才行吧。如果一个快排你还得回忆半天,那你怎么写的完题目咯。

鉴于题主不考408,那么你们数据结构自主命题的难度到底是什么样的,我建议你买一些历年真题回来对比着看一下,配合考纲,不考的不用复习,有针对性的着重看考过的知识点。如果不是很难的话一些比较难的部分就可以不深究,比如图的算法的实现,线索二叉树的算法,AVL树等等,但原理还是要深刻理解的。

然后学了C的话,并不意味着不需要学链表 、串、排序了,我不知道你C是用的哪本教材,如果仅仅只是学C语言的话,确实是会附带着讲一点数据结构的知识,但是都太浅了,面太窄了。比如串,C语言中可能就只是学一点字符串处理?严蔚敏数据结构教材中讲的是广义的串,链表的话,也是先讲顺序表,而不是链表,这是一个子集的关系。

排序的话,其实冒泡排序,快排这些都是内部排序,外部排序C语言应该是不会学的。再高效的学习方法,最终目的都是深入理解并灵活运用所学的东西,这种东西是走不了捷径的,只能理解并非常熟悉才行。

对于C语言的要求不会很高,我给你归纳一下:

1.基本语法要非常熟悉,比如函数结构,循环结构,switch,struct, typedef, static等等。

2.熟练使用指针,要会用malloc()以及free()还有sizeof(),并且理解原理以及工作过程

3.熟练使用函数递归调用,并且理解其思想,因为很多数据结构本身就是递归定义的,比如二叉树,这种递归的思想很重要,而且要具备将递归转化为非递归的能力,考试过程中,如果能熟练使用递归的话能在算法设计题上省下大量的时间,因为递归实现的话代码量将大大减少。

4.最好了解一下C++的引用(&),因为严蔚敏数据结构这本教材中大量使用了&(pass by reference)以及*&(传指针引用)来进行参数传递,其实在C++中引用是用指针来实现的,并不是什么新东西。

最后的建议:

实在要在50天内解决数据结构的话,每天起码6个小时放在数据结构上吧。

多做题,多动脑子,多手写代码,数据结构不能死记硬背,一定要理解算法原理,灵活运用,不变应万变。祝好·~

费曼的彩虹,网络研发

这几年的题目我没看,  所以我只能根据我当时的经验来说,你适当借鉴.

1.总体思路:

考研的本质还是应试考试,在你这种特殊情况下,你的目标就是为了考高分, 所以我们需要功利(功利思维只是中性词语), 哪样能在短时间内拿到高分就哪样来.

2.具体方法:

大量看题做题,优先往年真题,真题之后再看王道这一类资料。

1)首先,大量看选择题,408考研数据结构的选题题还是挺容易的,都是套路,性价比很高。

2)选择题基本搞定之后,看大题目。408考研数据结构的大题目也是套路,主要考数组和链表,当然有时也会考二叉树,既然你零基础,那你先专注于把数组链表这类必考题搞定吧。

你要熟悉各种常见题型,特别是要重点看思路,数据结构大题看起来其实还是很快的,你情况比较紧急了,所以你在做了一定题目,掌握答题套路后, 其他题目就可以只光看思路了。

数据结构的答题套路:说思路,时间复杂度和空间复杂度的分析一定要有。即使你没高效算法,用暴力枚举也是可以拿一些分的。

3.强调的点

1) 一定要紧扣两个字:功利!考研笔试就是应试考试.特别是你时间这么紧急的情况下。有位高票回答他的出发点是从脚踏实地打好基础的正道,但你时间紧,只能应试了。

2) 虽然我一直在强调考研的功利性,但是话说回来,计算机的基础打扎实是特别重要的。所以如果你侥幸考上了, 请务必脚踏实地把基础打好。不然你机试,找工作依然啥都不会。

408考研考的拿点数据结构的东西实在太水了,你学不到真的拿得出手的东西。

4.补充我只所以一直在强调考研的功利方法的原因是我考研就是在这里吃了大亏。

我觉得数学公式的推导过程特别重要,所以我基本把每个数学公式的推导过程都反复自己做了两三遍,甚至还专门准备了个本子把三门数学课教材的所有定理及推导过程都剪下来贴在本子上。

我觉得英语单词量特别重要,所以就把新东方的乱序版和正序版这两本的单词都反复背,全基本翻烂了。

结果我因为这两个行为耗费了大量的做题时间,我当时想着考研应该当做学东西,打好基础,但后来做题的时间不够了啊。每个人不同,我强调的不一定适用于你,你自己借鉴吧。

韩乃琋

今天刚去确认回来

我想说的是:还是不要看严的了,太多太难太慢,我之前边看边敲代码到三分之一,感学要跟不上节奏了,放弃了,然后很快看完大话数据结构,然后过天勤,刷题

现在的目标是为了拿到分数,不是掌握数据结构,所以,怎么应试怎么来,一起加油吧

ps,要每天锻炼,不然生病很不爽很误事,血泪。更新,初试应该过了,复试愁啊,操作系统看不动。

顺利转职

不知题主考上没,考研应试完最好还是以理解为目标再好好过一遍。

匿名用户

最后这50天不到,大家的压力都会很大。一定别打乱自己的步伐。

别担心用不着的,比如时间不够,沉下心来。

和以后比起来,现在开始就是最早的时候。反正距离考研最后调整状态还有段时间,身体吃得消的话,可以再刷半个多月的夜,多花时间。

最后一个月早睡早起,保证充足睡眠。

我也不是计算机的,也不太懂。给你的建议是,政治其实会比别的科目好得分。政治一定别放松。你政治多考一点就把别的薄弱科目背回来一点了。

和男票今年一起考研。希望我们都可以顺顺利利。担心给他的压力大,其实很担心他跨考的,也不知道怎么安慰他鼓励他好。男生自尊心也都很强,害怕说多了让他感觉我不信任他的实力。控制好自己的情绪,不吵架,关心他,陪着他,就是我现在能做的唯一一件事了吧。

你和他一个情况,压力一定很大很大。加油加油!沉住气!千万别自己先没了信心!数学和英语不能白准备了呀!坚持住!为了你爱的人和爱你的人,也一定要加油!

little fresh girl

李狗蛋

我来更新啦,见下面哈

忍不住强答一番。。

我今年考803数据结构与程序设计数一英语二没错我怂了,考专硕。

目前还有不足50天,高数到中值定理,线代到向量,概率也没看多少数据结构快看完第二章了。还没到栈和队列。

我所有的都是0基础。我觉得我要重在参与,要是意外上了研,明年我告诉你。

数据结构其实不用太害怕,先有个整体的概念。基本就是线性表,队列,数图,查找和排序。

我用30天左右粗过一遍,买本专业课的书做做小题,做做历年真题,基本上选择填空啥的就差不多了。用10天左右练练算法啥的。最后10天基本处于回顾状态,重要的小题啊算法啊的再看看。

仔细看看折半查找什么的,反正我考研基本就算是考得书上的算法,把书上的算法好好做做,背背,也就差不多了。先说这么多,还有350来天就考研了,好紧张。

马哈

天勤和王道的书随便选一本,感觉天勤的更好控制进度,习题也更匹配,我也零基础,一天一章,一个半星期第一遍就看完了(每天一下午时间)。

王道的习题经常超范围到后面去,做起来有时候会不太舒服,不过质量也是不错的。

新东方有计算机408网络课程,数据结构感觉讲的也不错。

呃,这玩意有那么恐怖么?感觉也就树的后面稍微复杂一些,整本书需要理解的比需要记忆的多不少。不过我对自己要求也不高就是了,80分万岁~

话说你们把数据结构说得那么难,害的我以为看完数据结构就万事大吉了,计算机网络的冲突计算,组成原理的片选啥的一点也不比数据结构简单啊,要记的东西还比数据结构多。

托本科专业的福虽然是土建类专业计算机408的内容每科都或多或少接触过一些,大概也好理解点吧,迪杰斯特拉算法啥的都玩烂了。

有现在刚开始复习考研的同学么?

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是人工智能领域的一个重要分支,其主要目的是通过算法模型来让计算机自主地从数据中学习并提高自身的性能。机器学习的背景可以追溯到上个世纪50年代,随着计算机技术的飞速发展和数据的大量产生,机器学习逐渐成为了人工智能领域的研究热点。目前,机器学习已经广泛应用于各种领域,如自然语言处理、计算机视觉、智能推荐、金融风控等。 机器学习的结构主要分为三个部分:数据预处理、模型训练和模型评估。数据预处理包括数据清洗、特征选择、特征变换等步骤,目的是对数据进行去噪、去重、填充缺失值、特征选择和特征变换等操作,以便于建立和应用模型。模型训练是选择合适的机器学习算法,并对数据进行模型的训练和测试,以达到预期的学习目标和效果。模型评估是对学习模型进行测试和评估,判断模型的效果和质量,确定是否可以应用于实际场景,并对模型进行改进和优化。 机器学习的算法主要分为以下几类: 1. 监督学习算法:包括决策树、随机森林、支持向量机、神经网络等,主要用于分类和回归问题。 2. 非监督学习算法:包括聚类、关联规则、降维等,主要用于数据挖掘和模式识别问题。 3. 半监督学习算法:是介于监督学习和非监督学习之间的学习范畴,常见的半监督学习算法有自编码器、深度信念网络等。 4. 强化学习算法:是通过与环境交互来学习最优行为,常见的强化学习算法有Q-learning、DQN等。 机器学习的应用非常广泛,包括但不限于以下几个领域: 1. 自然语言处理:包括机器翻译、语音识别、文本分类等。 2. 计算机视觉:包括图像识别、目标检测、人脸识别等。 3. 智能推荐:包括商品推荐、新闻推荐、广告推荐等。 4. 金融风控:包括信用评估、反欺诈、资产定价等。 5. 医疗健康:包括疾病诊断、医学影像分析、基因组学等。 总之,机器学习已经成为人工智能发展的重要支柱之一,随着数据的不断增长和算法的不断优化,机器学习的应用前景非常广阔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值