1、为什么要学习数据结构?

说起来,数据结构已经有很久的历史了。早在1968年,美国的一些大学就开始开设数据结构课程,但是课程内容、范围都没有明确界定。随着计算机软件的不断发展,数据结构的课程内容也在不断扩充,到现在已经成为了计算机相关专业的基础核心课程。

很多人学习了数据结构课程或者了解课程内容后,心里通常会出现一个疑问:现在高级语言越来越强大,能够使用到的开发库越来越多,这时再去学习基础的表、树、图、哈希表、排序等等还有意义吗?这些结构和算法都有现成的实现,我只要知道如何使用就可以了,还花时间学习造轮子,不是浪费时间吗?在实际业务系统中,好像根本用不到表、树、图这些内容,学了还有啥用?

这些问题的确困扰了很多人,特别是在这个流行吃快餐的年代,大量的培训机构通过流水线的模式经过简单培训将学员送进职场,似乎知道怎么做、怎么用就可以了,其他的都不重要,慢慢体会就行,用熟了自然就会了。但实际上,在这里我们要搞清楚一个问题,数据结构中貌似用不到的表、树、图结构的内容设置,到底是让我们学什么?仅仅是搞懂这些结构吗?这才是问题的关键。

我的体会是,数据结构真正想告诉我们的是,如何对现实问题进行建模,并且采用合适的算法高效解决问题。这是一种计算思维,与语言无关,与工具无关,它是我们从现实世界走向计算机世界的桥梁。

目前,计算机的处理能力已经强大到令人难以置信的地步,但换个角度看,计算机又是愚蠢的,它只能执行一条条二进制指令,它甚至不知道自己在做什么。那么,在面临一个实际问题时,我们应该怎么做?第一步就是建模。从《数据结构》的角度看,我们首先要采用一个适合的模型来表示这个问题空间,然后基于这个模型设计高效的算法,运用算法解决我们面临的问题。在完成这个工作后,我们就可以使用程序语言描述模型与算法,然后进一步转化为二进制指令,从而运用计算机强大的处理能力来解决问题。

就拿网络爬虫的例子来说。如果我们要设计一个爬虫,获取互联网特定网址的所有数据,我们该怎么做?首先,我们可以使用有向图对问题空间进行建模,将各URL的网页看作为一个个独立的节点,把网页中的超链接看作有向边连接不同的URL。有了有向图这个模型,那么爬虫的主要任务就变成了获取特定区域内所有节点数据(仅获取一次),那么这个过程就变成了有向图的遍历运算。完成了这一步,我们就实现了爬虫最主要的分析工作,后续就需要使用特定的语言和工具实现爬虫了。

从上面的分析可以看出,《数据结构》本身实际上是语言无关的,它考虑的是问题本身,它解决的也是问题求解中最关键的步骤,而我们学习数据结构,重点要学习的就是这种计算思维,而不仅仅是表、树、图或具体的算法。所以,无论现在的高级语言如何发展,无论有多么强大的开发包,数据结构、算法仍然是值得学习的,否则我们只能在划定的圈子里跳舞,遇到新的复杂问题就会变得束手无策。

但是也要看到,编程语言、开发工具的发展对问题的求解也是有利的。正如很多人看到的,简单的数据结构和算法现在都有很强大的实现了(如C++的STL、Python Numpy等),我们不需要重复造轮子,它们能使我们把精力放到更高层次的问题上,让我们能够集中精力为更抽象的问题建立大模型、设计宏观算法,例如分布式计算架构的设计等,这仍然需要《数据结构》的支撑。

因此,学习《数据结构》过时了吗?我不这么认为。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 用武侠小说的方式来解释,数据结构和算法相当于我们程序员的「内功」,其他的框架就相当于各种「招式」,如果没有足够深厚...
    Jason_Shu阅读 302评论 0 0
  • 在这个信息爆炸的时代,留给我们的阅读时间却很少。可能大家都出现过这种现象:买了很多书,但却放在书架上落灰尘。 很高...
    宸溪阅读 158评论 0 0
  • 商隐熟知诗中之隔 今夜却被隔在巴山 窗在隔 雨在隔 夜在隔 山在隔 他在想雨的那一端 山的那一端 夜的那一端 在被...
    诗人张毅伟阅读 767评论 1 7
  • 晚安!
    十一郎63阅读 446评论 0 0
  • 思考:有远见,是一种洞察力与前瞻性的结合,是一种经过学习与判断历练出来的。 洞察力,不论在企业或者是个人的发展中,...
    杨雪雪阅读 254评论 0 0