我是怎么学习《数据结构与算法之美》的?

我在这里分享一下我的学习思路,我将这个看起来困难的过程分成了几部分来完成。 第一部分,数据结构和算法的基础知识部分。如果在大学学过这⻔课,在专栏里,你会看到很多熟 悉的描述。有些基础比较好的同学会质疑写这些知识的必要性。这大可不必,因为每个人的基础不 一样,为了专栏内容的系统性和完整性,老师肯定要把这些基础知识重新讲述一遍的。对于这一部 分内容,如果你的基础比较好,可以像学其他课程一样,在上下班或者午休的时候进行学习,主要 是起到温习的作用。 第二部分,需要代码练习的部分。由于王争老师面试过很多人,所以在专栏里,他会列举一些他在 面试中常常会问的题目。很多情况下,这些题目需要当场就能在白板上写出来。这些问题对于想要 提升自己面试能力的同学来说,应该是很有帮助的。 我这里列举几个,你可以看看,是不是都能回答出来呢? 在链表这一节:单链表反转,链表中环的检测,两个有序的链表合并,删除链表倒数第n个结点, 求链表的中间结点等。 在栈这一节,在函数调用中的应用,在表达式求值中的应用,在括号匹配中的应用。 在排序这一节,如何在O(n)的时间复杂度内查找一个无序数组中的第 K大元素? 在二分查找这一节,二分查找的四个变体。 这些问题你都应该上手写写代码,或者在面试之前拿来练练手,而且,不仅仅只是实现主要功能。 大公司的面试很多情况下都会考虑边界条件。只要被面试官抓住漏洞,就会被扣分,所以你最好事 先写写。 第三部分,对于海量数据的处理思路问题。现在排名靠前的大公司,大都存在海量数据的处理问 题。对于这一类问题,在面试的时候,也是经常会问到的。由于这类问题复杂度比较高,很少让当 场就写代码,但是基本上会让你说一个思路,或者写写伪代码。想要解决海量数据的问题,你会的 就不能只是基础的数据结构和算法了,你需要综合应用。如果平时没有想过这部分问题,临时被 问,肯定会懵。 在专栏里,王争老师列举了大量这类问题,你要重点思考这类问题背后的思路,然后平时自己处理 问题的时候,也多想想,如果这个问题数据量大的话,应该怎么办。这样多思考,面试的时候,思 路很容易就来了。
比如,我这里随便列了几个,都是很经典的问题。你要是想不起来,就赶紧去复习吧! 比如说,我们有10GB的订单数据,我们希望按订单金额(假设金额都是正整数)进行排序,但是 我们的内存有限,只有几百MB,没办法一次性把10GB的数据都加载到内存中。这个时候该怎么办 呢?
如果你所在的省有50万考生,如何通过成绩快速排序得出名次呢? 假设我们有10万个手机号码,希望将这10万个手机号码从小到大排序,你有什么比较快速的排序方 法呢? 假设我们有1000万个整型数据,每个数据占8个字节,如何设计数据结构和算法,快速判断某个整 数是否出现在这1000万数据中? 我们希望这个功能不要占用太多的内存空间,最多不要超过 100MB,你会怎么做呢? 第四部分,工业实践部分。在每种数据结构的讲解中,老师会重点分析一些这些数据结构在工业上 的实践,封装在库里面的,一般人不注意的。 我看王争老师也是个代码分析控。一般同学可能遇到问题,查一查有没有开源软件或者现成的库, 可以用就完了。而王争老师会研究底层代码的实现,解析为什么这些在工业中大量使用的库,应该 这样实现。这部分不但对于面试有帮助,对于实际开发也有很大的帮助。普通程序员和高手的差 距,就是一个用完了就完了,一个用完了要看看为啥这样用。
例如,老师解析了Glibc中的qsort() 函数,Java中的HashMap如何实现工业级的散列表,Redis中的 有序集合(Sorted Set)的实现,工程上使用的红黑树等等。 尤其是对于哈希算法,老师解析了安全加密、数据校验、唯一标识、散列函数,负载均衡、数据分 片、分布式存储等应用。如果你同时订阅了架构、微服务的课程,你会发现这些算法在目前最火的 架构设计中,都有使用。 师傅领进⻔,修行在个人。尽管老师只是解析了其中一部分,但是咱们在平时使用开源软件和库的 时候,也要多问个为什么。写完了程序,看看官方文档,看看原理解析的书,看看源代码,然后映 射到算法与数据结构中,你会发现,这些知识和思路到处都在使用。 最后,我还想说一句,坚持,别放弃,啃下来。基础越扎实,路走得越远,走得越宽。加油!

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

推荐阅读更多精彩内容