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

数据结构和算法学习中的疑惑

  •  
  •   Nerv · 2019-04-26 16:31:53 +08:00 · 1776 次点击
    这是一个创建于 2040 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题吧。目前大一,感觉学习遇到了瓶颈。

    起因:渣学校的数据结构教学太水,因此从图书馆借了相关书籍开始自学( 《数据结构与算法分析—— c++描述》)。

    当前进度,刚看完了 AVL 树,学习伸展树 ing。

    问题 1:学习过程好枯燥啊(目前是啃书加实现),时间长了学习效率非常底下,而且会忘😂,有什么好的学习方法吗?刷题怎么样?

    问题 2:现在这个阶段把很多精力放在数据结构上合适吗?大家在这个阶段都是怎么安排学习时间的?

    5 条回复    2019-04-26 18:04:56 +08:00
    Stoulla
        1
    Stoulla  
       2019-04-26 17:23:55 +08:00   ❤️ 5
    事实上刷题你根本用不上这些数据结构, 如红黑树一类. 刚开始学习肯定是会很枯燥的,这必然是需要经历的一个过程.

    但如果你想更有趣一些, 不妨试着找一找具体的应用场景, 以及数据结构的相关性.
    比如, 以 AVL 树举例.
    1. 为什么提出了 AVL 树, AVL 树有什么缺点. 对 AVL 树的缺点和优点, 我们有什么相关的扩展呢? --> 找到红黑树, Trie 树, Van Emde Boas 树. B 树等. 下面以红黑树举例.
    2. 红黑树多用于什么场景呢? 举例 ,比如 STL 中的 set 和 map 就大量运用了红黑树, 而不是 AVL 树.为什么它们要采用红黑树呢?
    3. 参照相关实现, 尝试去自己实现一下 STL 中的 map. 可以参考源码, 但我觉得可能对于大一的你来说难度可能太大. 因此推荐阅读, 而不是自己实现.

    建议:
    数据结构的学习,枯燥的原因是因为你现在了解的太少, 等于刚入门, 无法将具体的应用需求和所学的联系起来.但这是老师和网络上的任何教程都无法解决的问题, 这需要你自己去摸索.
    因此我建议你啊, 当看故事一样, 先了解一下各个算法提出的背景, 以及它们所解决的问题. 然后再在实际解决问题中去进行深入的理解.

    数据结构属于超基础的东西, 但是也是超重要的. 所以必须啃精. 我因为本科没学好现在都还在还债呢.

    刷题的话, 个人建议不要把刷题当成是学数据结构的动力. 这东西, 更多的锻炼的是一种思维方式,对于高深的,代码量较大的数据结构是不会有涉及的.

    如果觉得老师讲得不好, 可以参考一下 MIT 的课程, 6.006 和 6.046.

    吐槽:
    大一就这么勤奋了, 蛮羡慕的. 我大一的时候可真是峡谷一霸,打的那叫一个醉生梦死- -. 祝你好运~~
    Nerv
        2
    Nerv  
    OP
       2019-04-26 17:43:01 +08:00
    @Stoulla #1 感谢回复,学了挺长时间没有 "实际收益" 还是有点失落的😫,我尽量适应吧。
    Nerv
        3
    Nerv  
    OP
       2019-04-26 17:47:01 +08:00
    @Stoulla #1 总觉得眼前需要学的东西太多,,快一年了还只会玩控制台着实蛋疼。
    lhx2008
        4
    lhx2008  
       2019-04-26 17:47:56 +08:00 via Android
    非科班,我倒没有啃,因为基本所有语言的 container 都已经实现了,就当看过一遍了解一下
    Stoulla
        5
    Stoulla  
       2019-04-26 18:04:56 +08:00
    #3 GUI 的实现那是另一个课题. 如果不想从事这方面的一直不学都没关系. 另外, 编程的话最快的实际收益还是自己找一些小项目进行实现, 但是你现在属于刚入门, 所以... 个人看法是, 之恶能枯燥的学.


    #4 说的是有道理的. 你所有的这些数据结构都是有人做好了轮子了. 如果你只是要打出能用的代码来说的话, 网上几乎都能找到现成的.
    但是你现在才大一,时间超级充分, 所以是更建议你知其所以然. 以后无论是考研还是工作, 这个都是必然要用到的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:51 · PVG 09:51 · LAX 17:51 · JFK 20:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.