V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chnhyg
V2EX  ›  问与答

关于学习数据结构与算法分析,请教几个问题

  •  
  •   chnhyg · 2020-08-12 13:31:00 +08:00 · 1990 次点击
    这是一个创建于 1594 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先简单介绍下情况,非科班,没有学习过高中数学和大学数学。(高中数学会一点点,这里暂且就当没学习过它吧。)

    随着工作年限的增加,我越来越意识到,数据结构与算法的重要性,所以想系统地、全面地学习一遍数据结构与算法。

    经过多次分析与筛选,我最终购买并尝试阅读了《数据结构与算法分析》。但是对于目前的我来说,数学公式几乎看不懂(指数、对数能看懂),没有办法继续阅读下去。看第一章里讲,似乎需要掌握指数、对数、级数、模运算与证明的方法才可以继续阅读下去。

    那么,我的问题来了:

    1. 有没有比《数据结构与算法分析》更适合的教材?(基本确定就是这本书了,不过还是想听听各位前辈们的建议。)
    2. 是不是掌握指数、对数、级数、模运算与证明的方法就可以开始阅读这本书了?
    3. 对于将来能够系统地、全面地学习数据结构与算法,还有没有什么数学知识点最好也一并掌握了?
    4. 对于掌握以上数学知识点,有没有适合自学的数学课本 /教材推荐?

    先提前谢谢各位前辈们了。

    15 条回复    2020-08-13 19:15:58 +08:00
    agriphar
        1
    agriphar  
       2020-08-12 13:42:19 +08:00
    要不。。。
    先补补数学?
    xilou31
        2
    xilou31  
       2020-08-12 14:22:44 +08:00
    听语气像是工作了挺多年的,但是问的问题差点以为是个初学者....如有冒犯请见谅

    1. 适合初学者的话,还听说过一本《大话数据结构》
    2. 《数据结构与算法分析》,说的是黑书那本?印象中那本书不怎么需要数学知识吧,那本书算是比较浅的,只要到图的部分才需要数学知识。
    3. 建议等学到相应的算法,再去掌握对应的数学知识。
    4. 这个我真不知道怎么回答。
    wysnylc
        3
    wysnylc  
       2020-08-12 14:26:18 +08:00
    慢慢看,先挑喜欢的看再挑有用的看
    看一本书学不会什么,少看一本书也不会少什么
    Vegetable
        4
    Vegetable  
       2020-08-12 14:32:20 +08:00
    基础的数据结构和算法,几乎不需要什么数学知识,仅有的计算就只是算算复杂度吧。你可以尝试从轻松一点的书籍入手,而不是比较刻板的教材。
    TimePPT
        5
    TimePPT  
       2020-08-12 16:01:19 +08:00 via Android   ❤️ 1
    《算法》第四版,说是算法,其实数据结构讲得也很细了。
    DJQTDJ
        6
    DJQTDJ  
       2020-08-12 16:05:00 +08:00
    把你上大学时候的这本书找出来 《 Data Structures and Algorithm Analysis in C 》
    raaaaaar
        7
    raaaaaar  
       2020-08-12 18:59:00 +08:00 via Android
    不是说不需要数学知识,其实最基本的数据结构也有其数学定义,只是我们实际应用是不需要去分析和研究数学证明的,只要能画图分析好每一步做了什么,能转换成对应的代码,但是这是应用方面的,要搞研究那才要深入数学。所以只是应用的话,什么数学都不需要。
    chnhyg
        8
    chnhyg  
    OP
       2020-08-12 19:34:03 +08:00
    @xilou31 #2
    是的,确实有几年的工作经验了,但是数学这块还不行,嘿嘿,谢谢你的解答。

    @Vegetable #4
    其实我也有考虑过看《大话数据结构》和《算法图解》等入门类书籍,但是我想系统全面地学习它,所以会优先选择《数据结构与算法分析》这类系统、全面、严谨的教材类书籍,甚至它要求我不会的一些数学知识。
    Stoulla
        9
    Stoulla  
       2020-08-12 20:09:51 +08:00 via Android
    不如考虑下 mit 的网课?如果你啥都忘了不如看网课自学吧。那个搭着算法导论看再加上用 python 过一遍,我觉得就很扎实了。而且我认为把算法和数据结构分开讨论是不对的,这两个就应该一起学。
    misaka19000
        10
    misaka19000  
       2020-08-12 20:16:02 +08:00
    @TimePPT #5 这本书我看过,个人非常不推荐,感觉不是很高,极其过誉

    推荐《数据结构与算法 Java 版》,不算太厚,读完基本上主流的算法和数据结构都能了解了。说实话,常见的算法和数据结构就那么些,花点时间基本上就能都了解完了。
    uuspider
        11
    uuspider  
       2020-08-12 21:42:45 +08:00
    数组、栈、队列、链表、树、散列表、堆、图……
    好像敲代码实现这些东西并不需要什么数学吧
    chnhyg
        12
    chnhyg  
    OP
       2020-08-13 12:49:28 +08:00
    @misaka19000 #10
    是的,目前就是这本书。


    @uuspider #11
    看起来不需要,但是书上面的数学公式看不懂。
    xilou31
        13
    xilou31  
       2020-08-13 12:54:59 +08:00
    @chnhyg #12
    你所说的数学公式..会不会是伪代码,不过我现在手上也没那本书
    chnhyg
        14
    chnhyg  
    OP
       2020-08-13 13:38:07 +08:00
    @xilou31 #13
    大概是这样子的。
    ![31597297035_.pic.jpg]( https://i.loli.net/2020/08/13/69N15S2vaXzkWuG.jpg)
    ![41597297036_.pic.jpg]( https://i.loli.net/2020/08/13/2Aqv3Yd1NcQFUBr.jpg)
    uuspider
        15
    uuspider  
       2020-08-13 19:15:58 +08:00 via Android
    @chnhyg 我觉得可以先把代码敲一遍,边敲边看公式,应该可以互相促进理解
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:22 · PVG 04:22 · LAX 12:22 · JFK 15:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.