408数据结构,怎么练习算法大题?

其实考研的数据结构算法题是有得分技巧的

得分要点

  1. 会写结构定义(没有就自己写上)
  2. 写清楚解题的算法思想
  3. 描述清楚算法实现
  4. 最后写出时间和空间复杂度

以上这四步是完成一道算法题的基本步骤,也是其中得分的主要地方就是后面两步 。但是前面两步也不能忽略,有时候你写不出来算法实现和算法的时间(空间)复杂度,有前面两步老师也能给你点分数

很多同学不会写结构定义,其实结构定义在数据结构课本上给的都有,比如下面这个就是几个常见的结构定义:

顺序表的结构体定义

#define MAXSIZE 100 // 定义顺序表的最大长度

typedef struct {
    int data[MAXSIZE]; // 存储顺序表的数组
    int length; // 当前顺序表的长度
} SqList; // 定义顺序表的结构体类型

单链表的结构体定义

struct ListNode {
    int val; // 节点的值
    struct ListNode *next; // 指向下一个节点的指针
};

双链表的结构体定义

struct ListNode {
    int val; // 节点的值
    struct ListNode *prev; // 指向前一个节点的指针
    struct ListNode *next; // 指向后一个节点的指针
};

如何准备数据结构算法模版

不用大家准备,这里有帮大家准备好的一份数据结构算法模版,大家只需要抽时间去看看就可以了:

数据结构算法模板 | LUCEN这里是考研数据结构需要的算法模板https://www.lucenczz.top/article/af9dbf29-83b5-417a-ac0a-adbb6e721e02

这份模版包含的内容十分的全面,一共21个部分,包含了几乎全部可能用到的算法模版,这些算法模版并不是让大家全部背下来,主要是帮助大家理解,每一个算法都有对应的讲解,因为408算法题或者其他的算法题,并不是靠大家固定的算法,而是让大家通过算法解决特定的问题。

比如这个算法的注释就非常的清晰易懂。另外还整理了每一年408真题卷对应的力扣题源,大家可以去力扣网上刷一下。

如何高效练习算法题:

练习算法题其实很简单,现在有很多练习算法的平台,我推荐给大家两个我认为比较好用的,一个是力扣,另外一个就是AcWing。

关联度最高的是AcWing ,网站acwing.com,90%可以找到原题,但是社区热度很低,看题解不太友好。该网站题目整理自NOI全国青少年信息学奥林匹克竞赛。

关联度一般的是leetcode ,网站leetcode.com,中文版叫力扣 ,网站leetcode.cn,50%可以找到原题,社区热度极高,非常容易找到高质量的题解,懒得找的话就看官方题解。

我上面分享的文章里面已经把力扣上应该刷的题目分享出来了,大家直接去看就可以了。

如何提高408上岸的成功率

以我自己的经验以及我身边人的经验,408能不能上岸的决定性因素除了专业课本身,最大的变数就在于考研数学。考研数学考的好,上岸的成功率就高

因为大家408的差别真的不是太大,408你能考120+就已经算是高分选手了,大部分的同学分数集中在110分左右。但是考研数学考的好的与不好的差距能有至少30分的差距。

不管你是考研数学一还是考研数学二,那些无法上岸的都是考研数学考差了。至于为什么考研数学会考差,我觉得这一点我有发言权,因为我在考研备考的时候也差点把考研数学给搞砸了。

大部分同学的专业课是6月份开始复习的,我也不例外,所以九月底我结束408第一轮复习的时候,我的数学刚好结束强化。这个时候我面临的最大的一个问题就是时间不够用,十月初,我每天需要进行408的第二轮复习,需要写数学卷子,需要写英语真题,准备英语作文模版,还需要刷政治选择题,背政治知识点

所以平衡好各科的复习时间真的需要智慧,我就是因为没有平衡好数学与408之间的复习时间,把大部分时间花在408身上,忽略了数学的学习,导致我后面做真题越来越差。所以,如果你想提高408的上岸成功率,一定不要忽视考研数学的学习。

下面我就来说说408和考研数学如何高效的复习。

一、我是如何平衡考研数学和408专业课的

这只是我在考研时候尝试的方法,对于我来说是有用的,给大家一个参考。

上面说过,十月份是一个关键的时间点,这个时候我们有很多工作要做

  • 数学要开始冲刺,做真题卷,模拟卷;
  • 408要开始第二轮复习,开始做真题卷;
  • 英语要看作文课,准备作文模版;
  • 政治要看强化课,刷小程序题目,背知识点;

这个任务量真的很大,我记得我从数学结束强化开始,每天就要保持至少12小时的学习时间。早上7点半开始,晚上9点结束(保证休息时间,考研是一场马拉松)。

我的时间分配大概就是英语2小时,政治2小时,专业课5小时,数学3小时。可以看到,这个时候数学的学习时间已经被我压缩到很短了,也就是做一张卷子需要的时间。但是这并不能引起我对于数学学习的恐慌,我做第二套数学真题卷的时候,引起了我的极大的恐慌!我做大题很难想到思路,最后花了三个多小时才做完,考了100左右。

这个时候想放弃的念头都有了,强化阶段我也做了不少题,880题+660题我都过了一遍,并且错题都处理过了,但是我做卷子的时候遇到综合题很难有思路。

我很快的调整了一下我的学习。我的专业课的学习时间不变,然后在原有的学习时间的基础上加了一个小时给数学。而且我也停止了做真题卷,因为我知道就算我继续做下去也是浪费。我的朋友推荐我用知能行考研数学 ,我只能死马当活马医,试了试,没想到真的有用!

知能行考呀数学是一个人工智能刷题平台 ,我使用的感受就是我前面浪费了太多时间,为什么没有早一点用 。知能行可以根据我的刷题情况,快速的定位我的薄弱点 ,有多快呢,大概就几道题,就能精确的定位到我那里掌握的不好。

我挑选了我学的最不自信的几章来学习,比如中值定理还有导数的证明,这些章节我刷知能行,被他发现很多薄弱点,有的可以说是盲点,因为我在讲义上都没有见到过。定位到薄弱点之后,知能行就组合知识点出题,循序渐进的帮我吃透这些知识点。

其实刷知能行并没有花费我很多时间,因为那些我已经掌握熟练的知识点,知能行可以检测出来,自动帮我跳过。知能行有5个等级,我的很多个专题的等级很快就达到了做真题的水平。

然后我再去做真题,很多题很快就有思路,我发现知能行对我的训练在潜移默化中就把我脑子里一盘散沙的知识点串联在了一起。所以,那些十月份数学还没有走上正轨的408考生,你们真的可以用知能行试一下。或者白嫖他的测试也可以,看看自己掌握的怎么样:

知能行考研数学知能行考研数学通过大数据分析历年真题的考点难点,为每位考生选择快速提高的突破口。知能行基于机器学习追踪考生知识点的掌握情况,测练合一从而达到高效备考https://bestzixue.com/?app_referrer_id=WBH~atczwc-csdn408ds-0414-editor_chengzz

经过这个调整,我后面复习的就很顺利。所以,考研还是要经常停下来,复盘一下自己的复习效果,及时调整复习策略,能够独立的思考,不要人云亦云

二、408的复习用书推荐

关于408的用书,我就分享一下我在备考期间看过的讲义和用过的教材。

讲义

408讲义我只推荐王道,不是王道强,是王道个方面都不弱,虽然不拔尖,但是其他的一个能打的都没有。

视频课肯定就是王道的视频课,搭配王道的学习讲义,十分完美。关于408四科的复习顺序,我的建议是数据结构,计算机组成原理,操作系统和计算机网络 。我是那种比较喜欢先难后易的选手,所以把数据结构和计算机组成原理放在了前面,大家学习的时候数据结构一定要放在前面学,后面的按照自己得习惯来学就可以。

真题

408真题也是用王道的,王道版真题总结的最完整,并且答案给出的解析都还可以。大家在第一轮复习完之后,第二轮就可以带着真题开始做,408的复习就是反复多遍,真题也是,做很多遍,到后面你要做到能秒杀真题的程度。

课本

王道的讲义是有一些不足的,这些不足就要由课本来弥补,特别是跨考的同学,王道上的一些知识点可能讲解的很模糊,这个时候你不能将就过去了,不要将就,找到课本上的原内容,课本上讲的很清楚,很仔细。下面是我在考研时候用过的补充课本,这些也都是我本科的课本。

数据结构:参考书《数据结构(C 语言版)》严蔚敏。完全零基础跨考的,数据结构看严蔚敏的书理解起来很困难的同学,可以看《大话数据结构》这本书。

计算机组成原理:参考书《计算机组成原理(第 2 版)》唐朔飞

操作系统:参考书《计算机操作系统(第四版)》汤小丹

计算机网络:参考书《计算机网络(第 7 版)》谢希仁

如果你找不到这些课本,我推荐你去买二手的,网上都有,或者我这里有准备好的pdf版,需要自取。

关于408你需要所有东西都在这​www.lucenczz.top/article/2dcc053d-5e2e-483e-93b3-f16523a4b1e8​编辑

三、408和考研数学的总体复习规划

下面我就按照我的考研时间安排,来说说408和考研数学该如何规划。先说一下我的背景能力,我大学本科期间数学的平均分85分左右,408的平局分在80分左右。而且我408之所以六月份才开始复习,是因为我大三上学期有两门课,操作系统和计算机网络,408也考。

408基础阶段(6月-9月底)

408的第一轮复习就是跟着王道的视频课把四门课都过一遍,三个月的时间完全可以吧四门课给过一遍,基础阶段我的建议是,听一章的视频课,就把王道书上的课后题给做了。

其实大部分都是选择题,大题也要做 ,不要留给后面,后面也不会有太多的时间来做。每一章学完之后,可以自己试着画一下思维导图,尽量不要用网上现成的,思维导图可以帮助我们梳理学过的知识点,让我们的学习更有条理。

考研数学基础阶段(3月-6月底)

考研数学基础阶段的学习非常关键,下面我就从听课和做题两方面来说说考研数学基础阶段需要做的事情。

听课方面,如果你基础不错,那么可以选择听张宇或者武忠祥的课程,如果你的基础不太好,那么就听汤家凤老师的零基础课程

基础阶段做题方面的建议:

我考研的时候,我在基础阶段用的题集是1800题的基础部分,题目难度还是可以接受的,加上讲义上的例题,这些题目在基础阶段完全够用。大家每听完一章的课程,就做一章的题目,并且一定要花时间总结错题。

如果我第二次考研,我绝对不会再这么做,因为我知道有知能行考研数学 这个刷题网站,也就是说在基础阶段,我可以很容易的知道我哪里学的不好吗,然后进行针对性学习。大家在学习过程中,要尽量避免做无用功。

408强化阶段(10月-11月底)

408强化阶段主要有两个任务:

  • 408真题要刷两遍以上;
  • 408要进行第二轮复习;

因为408的内容太多,所以一定要进行第二轮的复习,你进行第二轮复习的时候会发现第一遍学习的很多内容都忘掉了。第二轮复习,王道课本上的课后题可以只做错题,其他题目可以看一下。

强化阶段最主要的就是做真题,做真题可以和第二轮复习结合起来,根据真题反应出来的薄弱点,进行针对性学习是很有必要的。

考研数学强化阶段(7月-9月底)

考研数学的强化阶段一做题为主,尽量不要花太多的时间用在听视频课上。做题,我的建议就是先知能行考研数学再660题+880题

先用知能行考研数学是因为知能行考研数学可以快速的帮我们找到我们的薄弱点 ,然后我们就可以根据找到的薄弱点,进行针对性的强化学习,这是很符合逻辑的操作

而且知能行考研数学放在前面学习还有一个好处就是,他有一个「AI猜你会不会」的功能。也就是你如果用知能行刷题,那么他就能根据你的刷题效果,预测出来660题和880题上面对应的题目,哪些你一定可以做出来,哪些你做不出来(能力还没达到),哪些你努努力可以做出来。

这个功能的厉害之处就在于,你刷880题和660题再也不是睁眼瞎的状态,对于那些完全有能力做出来的题目,可以不做,这就节省了很多时间,你就可以把时间都还在那些需要去练习的地方。

408冲刺阶段(11月-考试)

复习内容:

  1. 翻看真题的错题,回忆是否是知识点未掌握导致错误,如果是,必须马上通过王道书来查漏补缺
  2. 通过笔记来回忆知识点框架,这个时候必须很迅速的回忆起知识点的内容、特点及需要注意的部分。
  3. 对于一些内容,需要硬背下来,比如计算机网络的一些知识点,很零碎,但是选择题会考

480在冲刺阶段的任务主要就是整理前期复习过程中产生的各种错题,还有各种比较零散的知识点,408是需要去背的,比如数据结构的一些模版,计算机组成原理的一些硬件的名称和构造,还有计算机网络和操作系统的很多知识点都需要背。下面是我整理的数据结构的算法模版,大家需要自取:

数据结构算法模版​www.lucenczz.top/article/af9dbf29-83b5-417a-ac0a-adbb6e721e02

考研数学冲刺阶段(10月-考前)

真题的使用年数

10月开真题版:只做近15年的,最多近20年

时间紧张 版(10月之后开真题的):只做近10年,最多近15年

时间较紧的情况下,选择近十年的真题进行训练,这十年真题考点是可以覆盖今年考题的百分之80以上。

如何高效利用历年真题

你可以像我一样,利用好知能行的「真题AI预测功能」这个功能的特点就是:能够根据你的水平,预测出来每一年真题的分数,并且具体到了每一题你是否能够做出来。

是不是很神奇,你还没有做,知能行就可以预测出来。而且是根据你刷知能行的情况来进行预测的,所以数据特别准确。基本上能预测个八九不离是。

这个功能能节省你至少一半的刷真题的时间,把时间都花在那些需要重点突破的题目上面去 。因为知能行会预测出来,每一年的真题,哪些是你可以稳拿分数的,这些就可以放心跳过,不用做,这就节省了你的很多时间,因为已经会了,再去花时间做也不会有提高。

遇到那些能力还没有达标的题目,知能行会直接让你返回基础刷对应的章节。这样针对性的训练,可以让你把功夫花在刀刃上,你做的所有的努力都没有白费,这样的提分效果是最快的!

我虽然大部分的时间都还在了知能行上面,但是我知道我做真题的水平在不断的提升,看到那些真题从AI预测我「能力尚未达标」,慢慢的变成「也与可以,努力」在变成「相信自己可以的」。这个过程是非常有成就感的

冲刺阶段的时间非常的宝贵,大家应该把时间花在最需要提升的地方去

四、408单科具体该怎么复习

上面只是笼统的说了一下408应该复习那些内容,以及时间规划,其实具体的每一刻,复习的技巧和重点和节奏都是不一样的,下面我就来分享一下我的经验。

数据结构:

对于各种结构和相关算法要十分熟悉(各种树、各种图,各种排序),对于算法代码一定要自己动笔写,看懂和会写完全不一样。千万不要死记硬背,只要理解了很多算法自己也能写了。关键是动手画、动手写!理解背后的原理。代码最好按照参考答案的风格写,力求简洁,要不然写一大堆更容易出错

计算机组成原理

统考占45分,11个选择题,2个大题。这门课应该是四门里面最难的课程,不但会涉及计算,还需要大量的知识点记忆。这课的精髓在于理解计算机是怎么工作的,理解二进制。对于计组,我是从课本入手,只看统考要求的部分,同时配合网易云课堂上哈工大的计算机组成原理课程,看完基本上能够对这门课有个大概的认识。看完教材之后,就去做王道上面的习题,做完王道上的题之后,对计组的又加深了理解。王道上面的题反复刷了三遍,第一遍全部刷,无遗漏的复习。第二遍看重难点的题以及做错的题,那些做对的并且已经掌握了的,大概浏览一遍,第三遍的时候那些会的已经掌握的就不再去看了,主要就是看错题和重难点的题。计组的复习过程中,会遇到很多问题。比如一开始数据的表示和运算,看不懂就略看,跳过,后面再来看。重点是存储系统,如cache和虚拟存储器,指令系统,cpu,IO这一块。建议学计组的时候和操作系统结合着看,两者还是有不少交叉的知识点,能够加深理解。一次看不懂没事,计组肯定是要反复复习的。这门课出题特别灵活,而且计组的题一般情况下较难得分,复习的时候一定要全面,有时间尽量多做点题目。

操作系统

统考占35分,10个选择题,两个大题操作系统的那本教材,我大致浏览了一遍,然后就直接上手王道书了,当然如果想要看教材的同学用汤子瀛的书即可。这门课和计组有不少交叉的知识点,注意结合起来,加深理解。操作系统本身脉络比较清楚,记忆之前提前理解一下原理会比较好记。操作系统每年的大题有一道是奇数年考PV操作,偶数年考文件,一般是这样。PV操作王道书上的题都会了就没啥问题,难点在于文件管理,内容讲解不多,但是题目很灵活。好在这部分分值不高,可以适当取舍。另外一个大题基本考察的是内存管理部分,近几年有和组成原理结合命题的趋势,难度较大。但是学好组成原理的话也不难得分。

计算机网络

统考占25分,8个选择题,一个大题计算机网络知识点挺多的,不过不是很难,主要是以记忆为主。计网的分数在408中占得比例最小,只要把王道单科反复看,把上面所有知识点和题目都弄会了,基本就没有太大问题。网络部分的选择题偶尔会出现个别超纲题,我当时看了王道后面习题的配套视频,里面的老师会补充一些计网的课外知识,只要把老师补充的知识都掌握了而且把王道书上有的内容掌握扎实考试就没啥问题。

五、对于考研408的一些学习习惯建议

1、学会自己总结 ,408的资料虽然很丰富了,讲义,笔记,思维导图 都有现成的,但是自己如果能整理一遍,那么这个过程是一个非常好的自查机会。你能够明白自己哪些地方学的比较好,哪些地方学的很薄弱。

2、408是需要背的,很多人说,408理解就好了,我认为这句话太过于害人,你理解了,可是考试的时候你是需要直接把知识点拿来用的,理解是一方面,但是如果关键时候你记不清知识点的细节,就很容易出错。而且你去做真题就会发现,有很多需要记忆的地方。

3、数据结构算法题实在不会就不要难为自己,数据结构算法大题满分15分,这15分你只要写清楚结构题定义,写清楚算法思想,像不到最优解就写出来暴力解,最后再写出来时间和空间复杂度,就可以拿至少一半的分数!

4、得选择者得天下,408的选择题我认为难度中等,考察的套路很明显,只要多加练习,得65+的分数不在话下,一定要重视选择题,成败就在选择题。

5、408最好找一个人和你一块学习,不要闭门造车。找一个一起学习的人遇到不会的可以互相讨论,讨论的过程就是学习的过程,可以加深印象。而且,408的知识点内容很多,你注意不到的地方,可以问你的学习伙伴。

以上就是对于大家学习408的建议,观点比较片面,但是又很多使用技巧,希望对大家有用。祝大家考研上岸。

相关推荐
薯条不要番茄酱44 分钟前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
盼海3 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
搬砖的小码农_Sky9 小时前
C语言:数组
c语言·数据结构
先鱼鲨生11 小时前
数据结构——栈、队列
数据结构
一念之坤11 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
IT 青年11 小时前
数据结构 (1)基本概念和术语
数据结构·算法
熬夜学编程的小王11 小时前
【初阶数据结构篇】双向链表的实现(赋源码)
数据结构·c++·链表·双向链表
liujjjiyun12 小时前
小R的随机播放顺序
数据结构·c++·算法
Reese_Cool13 小时前
【数据结构与算法】排序
java·c语言·开发语言·数据结构·c++·算法·排序算法
djk888814 小时前
.net将List<实体1>的数据转到List<实体2>
数据结构·list·.net