美文网首页和王有志一起学习数据结构与算法
01.和王有志一起学习数据结构与算法

01.和王有志一起学习数据结构与算法

作者: 王有志 | 来源:发表于2022-08-18 14:09 被阅读0次

    大家好,我是王有志。

    从今天开始,我将和大家一起从零开始学习数据结构与算法。作为开篇词我们不聊技术,聊一聊为什么要学习以及要如何学习:

    • 为什么要“从零开始”
    • 一些学习建议和方法
    • 整个系列规划和说明

    “从零开始”

    记得2016年夏天,我刚踏出校门便在朋友圈立下了“豪言壮志”:

    kwgZg55v9PEnbvsGr4C4v9aYjoJkObg_Be9Eg6-Pe4M.png

    那时候的我,是真的相信自己可以写出“改变世界”的程序。可是,当我回过头来看这些年的经历时,发现自己慢慢变成了“CRUD BOY”,于是我不断寻找改变的机会。

    直到2021年底,我得到了一次转岗基础架构部的机会,我花了很长时间去研究项目和架构,可最后还是倒在了算法面试前。于是,我不得不开始“修补地基”。这就是我最初的目的,解决当前的问题,改变当下的困境

    或许很多小伙伴像我一样,为了通过面试不得不学习数据结构和算法,其实这无可厚非,毕竟学习的本质是解决问题,而无法通过面试也是我们遇到的问题之一。

    当然,如果能从解决面试中的问题,再到解决工作中的问题,这多是一件美事啊。

    建议和方法

    很多小伙伴在听到数据结构和算法时,就开始慌了,很难学吗?是不是有大量的数学计算?

    实际上并不是这样的,基础的数据结构和算法是一门很成熟的学科。成熟就意味着,无论是图书馆还是互联网,都有大量权威性的书籍和资料,为我们的学习提供了极大的便利性。

    其次,我们学习是为了将成熟的数据结构和算法应用到工作中,而不是创造新的数据结构和算法,应用相比创造总是容易的。

    最后,只有在算法分析时才会涉及到数学计算,而且大部分计算只要一丢丢高中的数学知识就足够了。

    说完了对学习难度的看法,在这里也给出我自己行之有效的3个学习方法:

    不去纠结概念和定义

    我们的学习目的是应用而不是应试。因此,能够准确的理解概念和定义,并通俗的解释出来就足够了,而不需要死记硬背晦涩难懂的概念和定义

    如果是为了通过专业/升学考试,那么你需要使用专业的教材,学习专业的课程,比如:清华大学邓俊峰老师的公开课《数据结构》

    不要从“两数之和”开始

    很多小伙伴的数据结构和算法之旅是从“两数之和”开始的。虽然难度只是简单级别的,但是也很容易让人陷入“abandon困境”(想想你的考研单词)。

    刚入门时,没有足够的知识储备,只能通过“暴力”方法解决问题,甚至根本无法解决问题,从而遭受打击灰心丧气,导致“abandon”。个人认为一个比较合理的顺序是:学习,思考,然后才是练习

    具象化数据结构

    还记得学习立体几何的场景吗?最开始在脑袋中构建几何图形是很困难的,但是在纸上画出来后,很多问题就会迎刃而解。

    学习数据结构也是这样,我们很难通过想象构建数据的逻辑组织形式,借助工具将抽象具象化,会帮助我们更好地理解数据结构的特点。

    在这里也推荐通过开源绘图软件draw.io构建你的数据结构。

    规划和说明

    接下来我会简单地介绍下整个系列的规划,文章结构和使用到的参考资料。

    整体规划

    整体分为3个专题:

    • 预备知识,涉及到基本概念,以及递归,迭代等编程技巧;
    • 数据结构,从线性表,散列表,树到图,会涵盖到常用的数据结构;
    • 算法,常用的算法和算法思想,如:排序,搜索,回溯,贪心,动态规划等。

    最后我会补充一点机器学习的内容,监督学习,无监督学习的概念,一些入门的算法,如:KNN,朴素贝叶斯等。毕竟我们不仅仅要“脚踏实地”,也要“仰望星空”。

    文章结构

    文章也分为3个部分:

    • 导语,简介文章的主要内容,方便选择是否继续阅读;
    • 正文,这里就是今天的主要内容了;
    • 结语,会有简单的总结和一些练习。

    参考资料

    • 《数据结构(C++语言版)》第三版 邓俊峰著,2020年秋季学期
    • 《算法精解:C语言描述》 Kyle Loudon著,肖翔 / 陈舸译
    • 《剑指offer:名企面试官精讲典型编程题》何海涛著
    • 《算法导论》科曼著,殷建平译
    • 百度百科(首选)
    • 维基百科(次选,需要科学上网)
    • 力扣

    好了,今天就到这里了,Bye~~

    相关文章

      网友评论

        本文标题:01.和王有志一起学习数据结构与算法

        本文链接:https://www.haomeiwen.com/subject/rrhygrtx.html