首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

最近在写一个系列《数据结构在实际项目中的使用》

  •  2
     
  •   gansteed · 6 天前 · 2833 次点击

    访问: https://jiajunhuang.com/tutorial/data_structure/index.md

    在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。

    这个系列教程就是为了解决这样一个问题的,我将会使用很多实际项目中的场景,来说明一种数据结构解决了什么实际问题,他的各种 操作时间复杂度,有何种缺点和优点等等。

    由于种种数据结构的典型应用不同,因此本系列中,我们将涉及到 Python,Go 和 C 三种语言,还有一点点汇编知识,但是对此不要感觉到 害怕,他们之间的语法并不会相差太大,基本上 C 语言家族的语言都很类似,相信大家放下心中的恐惧之后可以轻松理解代码的意思。

    本系列分为 12 篇,分别介绍了 12 种数据结构在实际项目中的使用:

    数组(array)
    链表(linked list)
    字典(map 或 dict)
    栈(stack)
    队列(queue)
    大小堆(heap)
    集合(set(hashset, treeset))
    有序集合(树的实现和跳跃表实现,参考 redis)
    位图(bitmap)
    hyperloglog(参考 redis)
    radix tree 或 trie
    b tree 和 b+ tree
    

    昨天写完了第一篇 "数组(array)": https://jiajunhuang.com/tutorial/data_structure/array.md

    39 回复  |  直到 2019-09-16 10:03:53 +08:00
        1
    cheneydog   6 天前
    出书,出名,赚钱,迎娶白富美,走上人生巅峰。
        2
    Natsuno   6 天前
    支持
        3
    usapla   6 天前
    持续关注
        4
    Jhonson   6 天前
    跟我之前的想法很像,我希望是集思广益,比如 dubbo 里面用到了什么结构时很巧妙的? io 多路复用有哪些结构?每个人都讲讲一些工程中的数据结构,组合起来那就真的强!楼主加油!
        5
    qsnow6   6 天前
    收藏!
        6
    CareiOS   6 天前
    必须赞一个呀。
        7
    doudouwu   6 天前
    很有意思,插眼
        8
    gansteed   6 天前
    @cheneydog 国内出书不赚钱(爆款除外)

    @Natsuno
    @usapla
    @qsnow6
    @CareiOS
    @doudouwu
    @Jhonson 感谢支持
        9
    Egfly   6 天前   ♥ 1
    找个高级一点的头衔,然后去开个课程,收费就完事了
        10
    userGyl   6 天前
    收藏 关注
        11
    gansteed   5 天前
    @Egfly 哈哈哈,收费课程以后再做

    @userGyl 感谢支持
        12
    justin2018   5 天前
    nice
        13
    wolfie   5 天前
    手写劝退。。。
        14
    ipwx   5 天前
    我以为诸位学了这些数据结构,之后的职业生涯中在用到某个别人的库或者系统的时候,会自然地猜到这些数据结构的用处的。然而看来是我多想了……
        15
    ipwx   5 天前   ♥ 1
    我觉得其实一个优秀的程序员应该具有天生的好奇心,用库和系统会去探究其中的原理,自然会联想到数据结构,不需要别人写教程教的……
        16
    gansteed   5 天前
    @justin2018 感谢支持
    @wolfie 哈哈,下一篇注解还是打字吧

    @ipwx 其实这个主要是针对工作经验不足的同学的,如开篇所说 "在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。"
        17
    mlhorizon   5 天前
    支持楼主做科普,总结一下对自己也是有好处的。
        18
    Kimiato   5 天前 via Android
    收藏,关注
        19
    bobsam   5 天前
    点赞~
        20
    shyrock   5 天前
    读完了。。。
    问题是这根本不是本帖所说的“实际项目中的应用”啊。。。
        21
    gansteed   5 天前
    @mlhorizon
    @Kimiato
    @bobsam 感谢支持

    @shyrock 项目不一定是业务强相关的项目,可能是编译器、runtime、框架实现等等。业务强相关的项目用数组的的确不多。
        22
    xrr2016   5 天前 via Android
    支持支持,Mark 一下
        23
    lovelife1994   5 天前 via iPhone
    马克
        24
    WytheHuang   5 天前 via Android
    马来人一下
        25
    ClutchBear   5 天前
    这示例图也太艺术性了.
        26
    gansteed   5 天前
        27
    raysonlu   5 天前
    马克,认真写,有深度,通俗,自然火起来的
        28
    codespots   5 天前
    关注,小弟前端,一直不知道数据结构在前端中的实际应用,可否在教程里大致提几个例子
        29
    gansteed   5 天前
    @raysonlu 感谢建议


    @codespots 港真,我 js 用的少,这个可能有难度了
        30
    netnr   5 天前
    @gansteed 昨天刚聊到 数据结构、离散数学、数据建模,没上过大学,让我去看看这些东西,今天早上就看到老哥的主题了,缘分哪,持续关注
        31
    qiaogaojian   4 天前
    先回复 养肥在看
        32
    allgy   4 天前
    支持
        33
    LeeChP   4 天前 via iPhone
    插眼插眼
        34
    Varchar   4 天前 via iPhone
    支持下
        35
    BirlGoy   4 天前
    @ipwx 有道理。好奇心是程序员最最宝贵的品质。
        36
    webshe11   4 天前
    这个博客的标题吓我一跳
        37
    gansteed   4 天前
    @qiaogaojian
    @allgy
    @LeeChP
    @Varchar 感谢支持
    @webshe11 和“编程随想”无关的哈哈哈
        38
    kuroismith   3 天前
    推荐工作经验不足的朋友看看 redis 源码, 常见数据结构在 redis 里都有对应的实现, 而且相当简洁, 没什么骚操作.
    如果直接源码看不进去可以买本 redis 设计与实现, 写的比较清楚. redis 在业务中很常用, 方便和实际场景结合去理解.

    看完了再看 java / c++ 的标准库里面的实现, 就差不多了.
        39
    boboyangmoumou   几秒前
    我要关注收藏,没事看看还不错
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4174 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 02:04 · PVG 10:04 · LAX 19:04 · JFK 22:04
    ♥ Do have faith in what you're doing.