学编程要学数据结构吗(五分钟学编程:如何学好数据结构与算法?)

五分钟学编程:怎样学好数据布局与算法?

原创声明

本文作者:黄小斜

转载请务必在文章开头注明出处和作者。

简介

学习编程,数据布局是你必必要把握的基本知识,那么数据布局毕竟是什么呢?

依据百度百科的先容,数据布局是盘算机存储、构造数据的办法。数据布局是指互相之间存在一种或多种特定干系的数据元素的聚集。通常情况下,经心选择的数据布局可以带来更高的运转大概存储听从。数据布局屡屡同高效的检索算法和索引武艺有关。

听听这是人话么,我帮你们翻译一下,但是数据布局就是用来形貌盘算机里存储数据的一种数学模子,由于盘算机里要存储很多七零八落的数据,以是也必要不同的数据布局来形貌。

本文头脑导图

为什么要学数据布局

了解了基本看法之后,接下去我们再来看看,为什么我们要学习数据布局呢?

在很多典范的步骤的计划中,数据布局的选择是一个基本的计划思索要素。很多大型体系的布局履历标明,体系完成的困难水平和体系布局的质量都严峻的依托于对否选择了最优的数据布局。

很多时分,确定了数据布局后,算法就容易取得了。有些时分事变也会反过去,我们依据特定算法来选择数据布局与之顺应。不管哪种情况,选择切合的数据布局都好坏常紧张的。

选择了数据布局,算法也随之确定,是数据而不是算法是体系布局的紧张要素。这种洞见招致了很多种软件计划办法和步骤计划言语的显现,面向目标的步骤计划言语就是此中之一。

也就是说,选定命据布局屡屡是处理成绩的中心,好比我们做一道算法题,屡屡就要先确定命据布局,再依据这个数据布局去思索怎样解题。

假如没多数据布局的基本知识,也就没有谈算法的意义了,很多时分即使你会使用一些封装好的编程api,但你却不晓得其眼前的完成原理,好比hashmap,linkedlist这些Java里的聚集类,实践上都是JDK封装好的基本数据布局。

怎样学习数据布局

第一次交往

我第一次交往数据布局这门课照旧4年前,那这时分我在准备考研,专业课考的就是数据布局与算法,作为一个非科班的小白,对这个东西可以说是一无所知。

这个时分的我仅有一点点c言语的基本,基本上可以忽略不计,以是小白同砚也可以依照这个思绪举行学习。

数据布局基本上是考研的必考科目,以是我一开头使用的是考研的复习册本,《天勤数据布局》和《蛮横数据布局》这两个家的书都是专门为盘算机考研办事的,可以直接百度,这两本书关于我这种小白来说居然都是可以看懂的,以是,用来入门也是ok的。

入门学习阶段

最早的时分我并没有直接看书,而是先方案先看视频,由于视频更好了解呀,找视频的办法就是百度,于是事先找到的最好资源就是《郝斌的数据布局》这个视频应该是很早之前录制的了,但是关于小白来说是够用的,特别基本,讲的很仔细。

从最开头的数组、线性表,再讲到栈和行列,以及后方更繁复的二叉树、图、哈希表,约莫有几十个视频,谁人时分正值暑期,我依照天天一个视频的进度看完了,看的时分还得时不时地实践一下,更有助于了解。

看完了这个系列的视频之后,我又转战开头啃书了,视频里讲的都是数据布局的基本,而书上除了基本之外,另有一些算法标题,好比你学完了线性表和链表之后,书上就会有干系的算法题,好比数组的元素置换,链表的逆置等等,这些在日后看来很容易的标题,事先把我难哭了。

幸而大局部标题是有解说的,看完解说之后还能安慰一下我受伤的心灵。 记取这本书,我在考研之前翻了最少有三四遍。

强化学习阶段

完成了第一波视频 册本的学习之后,我们应该以前对数据布局有了开头的了解了,对一些简便的数据布局算法也应该有所了解了,好比栈的入栈和出栈,行列的进队和出队,二叉树的先序遍历和后续遍历、条理遍历,图的最短途径算法,深度优先遍历等等。

有了一定的基本之后,我们必要对哪方面举行强化学习呢?

那就要看你学习数据布局的目标是什么了,好比你学习数据布局是为了能做算法题,那么接下去你应该重点去学习算法方面的知识,后续我们也将有一篇新的文章来讲怎样学习算法,敬请渴望。

固然,我事先主要是复习考研,以是照旧针对专业课的积年真题来复习,像我们的卷子中就察看了很多关于哈希表、最短途径算法、KMP算法、赫夫曼算法以及最短途径算法的使用。

关于考卷上的一些知识点,我以为把握的并不是很好,于是又买了《蛮横数据布局》以及一些并没有什么卵用的书归来回头看,再次强化了基本。

并且,由于我们的复试通常会察看一些比力经典的算法成绩,以是我又花了很多时间去学习这些算法题,这些标题并非数据布局的基本算法,以是在之前的书和视频中约莫找不到答案。

于是我又在网上搜到了另一个系列视频《小甲鱼的数据布局视频》内里除了解说数据布局之外,还解说了更多经典的算法题,好比八皇后成绩,汉诺塔成绩,马踏棋盘,旅游商成绩等,这些成绩关于熟手来说真的是很头大的,使用视频学习的确后果更佳。

实践阶段

纸上得来终觉浅,绝知此事要躬行。 众所周知,算法题和数学题一样,必要多加练习,并且考研的时分必必要手写算法,于是我就常常在纸上写(抄)算法,你还别说,就算是抄,多抄多次也有助于了解。

很多基本的算法,好比条理遍历,深度优先遍历和广度优先遍历,多写几遍更有助了解,再好比略微繁复一点的迪杰斯特拉算法,不多写几遍你可真记不住。

除了在纸上写之外,更好的办法天然是在电脑上敲了,写Java的使用Java写,写C 的用C 写,总之用本人善于的言语完成果好,为难的是我事先只会c,以是就只好老老实实地用devc 写简便的c言语步骤了。

至此,我们也算是学会了数据布局的基本知识了,最少晓得每个数据布局的特性,会写稀有的数据布局算法,乃至偶尔还能掏出一个八皇后出来。

保举资源

册本

《天勤数据布局》 《蛮横数据布局》 假如你要考研的话,这两本书可不要错过

严蔚敏《数据布局C言语版》 这本书是大学本科盘算机专业常用的教科书,年代久远,可以看看,官方也有配套的教学视频

《大话数据布局》 官方讲义各位都懂的,比力不接地气,这本书关于很多熟手来说是更合适入门的册本。

《数据布局与算法Java版》 假如你是学Java的,想有一本Java言语形貌的数据布局册本,可以试试这本,但是这本书显然比力繁复,不合适入门使用。

视频

《郝斌数据布局》 这个视频上文有提到过,年代比力久远,但是入门充足了。

《小甲鱼数据布局与算法》 这个视频比力新,愈加全盘,有很多关于经典算法的教程,作者也入驻了B站,有兴致也可以到B站看他的视频。

总结

关于数据布局的学习,我们就讲到这里了,假如另有什么疑问也可以到我群众号里找我探究,固然我们提到了算法,但是这里只眷注一些基本的数据布局算法,后续会有关于“怎样学算法“的文章推出,敬请渴望。

对了,你想问我文章里提到的册本和视频去哪找?我以前给你准备好了



写在最初

假如以为本文对你有协助的话,请你也不要鄙吝你的“顺眼”哈,转发伙伴圈就是对我最大的支持啦,你们的支持是对我最大的勉励。

对本系列文章有什么发起和意见,也接待留言报告我,渴望你的回馈。别的本系列文章也会制形成相应的视频放到B站,赶忙来B站眷注我吧。

知乎:黄小斜
B站:黄小斜


学编程要学数据结构吗(五分钟学编程:如何学好数据结构与算法?)(图1)

GM游戏 更多