【算法日积月累】0-写在前面的话

我是一个半路出家的“程序员”,在我刚开始从事编码工作的头几年,我没有接触过“算法和数据结构”,觉得它们是只会在我找工作的时候用得到的知识。尽管有很多人跟我说过“算法和数据结构”无比重要,我也很相信“算法和数据结构”很重要,但万事“开头难”、“开头难”、“开头难”……

为什么“难”?因为不知道应该如何入门,手边没有很好参考资料,身边也没有从事算法工作的同事,连个会算法的科班出身的同事都没有。

终于有一天,我终于开始了,从此入坑。

于是乎,我想写一个系列文章,记录一下我学习过的“算法与数据结构”的过程,如果有幸能够给一些朋友帮助,我会感到很荣幸。

如果你想在“程序员”的道路上走得更远的话,“算法与数据结构”是必学的,越早学习越好。

我是谁?我是一个本科数学专业,其实数学一点都不好的程序员,如果你有更好的学习建议,欢迎指点、交流。

参考资料

先从“参考资料”说起吧,“算法和数据结构”是一门非常抽象的学科,就像非数学专业的学生学习数学一样,如果没有很形象、生动的学习资料,入门就会是一件非常痛苦的事情。因此,找好“参考资料”很重要。

入门视频教程

我的算法入门课程是慕课网 liuyubobobo 老师的《玩转算法》课程。这门课程我是在 2017 年 5 月的时候学习的,可以说通过这门课程的学习打开了我进入“算法与数据结构”学习的大门。 liuyubobobo 老师的讲解十分细致,配合了制作精美的动画,大大降低了抽象的算法的理解程度,如果你对“算法和数据结构”一无所知,强烈建议你看看这个老师的视频教程,不懂的地方多看几遍,看完要做笔记,要练习。 liuyubobobo 老师是用 C++ 语言讲解的这个课程,我当时只会 Java ,不过一点都不影响理解,正如 liuyubobobo 老师的介绍“算法与数据结构应该是与语言无关的”。

我这个系列的文章,在开始的部分,基本会按照 liuyubobobo 老师课程的思路来,其实很多就是我学习这门课程的时候的笔记,只不过是我已经来来回回修改了好几遍了。现在发出来的版本,我重新使用了 Python 语言实现。在人工智能、机器学习、深度学习、数据科学大行其道的今天,Python 又是如此简单、易用,我们没有理由不用 Python。

我可以,相信聪明的你也一定可以。

这是我做的笔记。

写在前面的话-1

这里要说明一点:在我的系列文章中出现的学习资料,不论是网络视频、书籍还是介绍算法的网站、刷题网站,都只是我自己的学习路径的真实介绍,没有任何广告的意思,我只是觉得它们好,并且我真的从这些资料上学到了东西,所以我才写在这里。事实上,聪明的你无须付费就可以获得它们,并使用它们。

入门书籍

我的算法入门书籍:《算法4》

写在前面的话-2

这里的 4 是第 4 版的意思,这是一本非常经典的外文读物,已经有中文译本了。这本书和《算法导论》一样厚,但比《算法导论》要生动很多,同时也是国外名校使用的一门非常经典的教材。

这本书的特点:
1、颜值特别高:红色的封面,里面的纸像打印值一样白,阅读的时候很舒服;
2、结构很清晰,每一个算法都有代码实现,主要还是 Java,我当时只会 Java 语言,看这本书其实没有什么阻力;
3、这本书还有配套的网站,你可以去这个网站上下载书中的代码。

其实我之前介绍的 liuyubobobo 老师课程也大量参考和使用 《算法4》 这本书上的思路和例题。两者配合着学习,并且要练习,可以说是非常完美了。

下面再说一说其它的书籍:

《算法导论》

写在前面的话-3

我是学习了《算法4》(当然没有看完)再去看《算法导论》的,很多地方其实都容易理解得多,《算法导论》有一点对初学者很不友好的地方,那就是所有的算法代码都是伪代码,但这毫不影响《算法导论》的地位,或许《算法导论》根本就不是给初学者看的。

《算法图解》

写在前面的话-4

这本书我是和《算法4》一起买的,一本很小的书,用 Python 语言实现,看着玩,图中的插画很生动。看这本书主要是让我觉得算法可以以比较轻松的方式入门。

《剑指 Offer》

写在前面的话-5

这本书主要用于准备算法面试,在网络上备受好评。里面有很多问题是和 LeetCode 重合的,作者会以面试官的角度给出对这些问题考察的内容。

邓俊辉老师《数据结构 C++ 语言版》

写在前面的话-6

其实最早认识邓老师是他的 mooc ,他制作的算法与数据结构 flash 动画是十分生动的,它的教材和课件风格是一致的,他在教学中还赋予了算法比较优雅的哲学含义。在内容上,涉及到了一些高级数据结构,例如红黑树、B 树等,如果理解高级数据结构有困难的话,可以看看他的 mooc 或教材。

刷题网站

LeetCode

传送门:LeetCode

想熟练掌握常用的算法和数据结构,刷题是必经之路。
LeetCode 是国内外公认的刷题网站,这个网站上罗列的问题是一些知名公司的面试问题。
这个网站现在已经有中文版了,对于看英文比较吃力的朋友,例如我来说,是一个好消息。不过中文版里面的讨论的内容没有英文版多,所以,想要参考别人写的代码可以到中文版上看题目的翻译,到英文版里看别人的代码。

顺便说说,我在刷题的过程中,我找到了一些视频资源,这些视频资源也可以帮助你理解一些问题,可能大伙在刷题的时候也会搜索到它们的视频资源或者个人博客,它们是“Cspiration”、“花花酱”、“小 Q”、“小 Fu”等。

LintCode

传送门:LintCode

这个网站可以作为 LeetCode 的补充,不过我看大家刷得比较多的还是 LeetCode。

ACWING

传送门:AcWing

这是我在 B 站上看到一个北大研究生“大雪菜”做的直播时看到的网站,AcWing = Accepted + Wing,简称AC 之翼。在上面可以刷一些 LeetCode 上没有的 《剑指 Offer》的题,“大雪菜”还会在直播里给你讲每道题的思路,这个网站上还有一些活动,激励里去刷题和分享,我觉得还是很不错的。

总结

1、培养兴趣

学习《算法与数据结构》是一项工程,并不是一件特别轻松的事情,所以我觉得刚开始的时候,培养兴趣是很关键的,要让自己认识到学习《算法和数据结构》是十分有用的。

2、乐于分享

不止一个人告诉我应该把自己的解题思路写成文字分享出去了。写成文字可以帮助自己思考,也方便以后查看,也能帮助到别人。事实上,互联网上这样的人有很多,应该成为他们中的一员。

3、坚持

贵在坚持,不要轻易说放弃。

(本节完)

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

推荐阅读更多精彩内容

  • 原文链接:http://zh.lucida.me/blog/on-learning-algorithms/原文作者...
    江流儿Z阅读 1,942评论 2 74
  • 随着自己写的越来越多,慢慢的就会有人和我主动交流,现在好多人希望我写一篇考研、就业的选择、零基础如何学习编程,秋招...
    编程剑谱阅读 1,259评论 5 33
  • 柚柚柚子雄 灯光再暖,也想抱住你。北风添寒意,暖茶温相思。此刻我心里,牵挂着今生的牵挂,亲爱的梅,有很多话,真的,...
    李让young阅读 303评论 0 1
  • 下午,我专门到你办公室楼下去接你,但是你却不愿做我的车回家。你说,虽然仍然爱我,但是希望我们断绝这种关系。...
    lovexm阅读 220评论 0 0
  • 忘不了您和风细雨般的话语,洗涤了我心灵的泥尘;忘不了您如东风般浩荡的叮咛与嘱咐;给予我前进的勇气,忘不了您的一笑...
    喜旧之人53阅读 247评论 3 6