V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
peneazy
V2EX  ›  程序员

《算法导论》还是《数据结构与算法分析: C 语言描述》

  •  
  •   peneazy · Mar 7, 2017 · 11034 views
    This topic created in 3349 days ago, the information mentioned may be changed or developed.

    野生程序员一枚,硕士毕业后才学的前端,昨天去一网易美团级别的公司面高级前端,本来自己会写 4 、 5 种排序和搜索算法,没想到考官出了个类似搜索变体的算法题来考我,自己一下子蒙了,写了个复杂度最差的。

    已经决定在现在的公司再磨炼个一年左右,把计算机基础打好,从算法开始。市面上有两本 JS 方面的算法书,自己当时也是看的这个,不过感觉书的内容不深刻,决定看算法的经典书,不知道各位对上面提到的 2 本书推荐哪个。

    56 replies    2017-03-18 22:11:42 +08:00
    shenyi26
        1
    shenyi26  
       Mar 7, 2017   ❤️ 1
    https://book.douban.com/subject/10432347/ 基于 java 的。涵盖基本的数据结构和算法,讲的比较细, coursera 上面还有相应的课程.
    Em5O7B1JGfjQnBry
        2
    Em5O7B1JGfjQnBry  
       Mar 7, 2017 via Android
    你有编程基础直接看算法导论就可以了
    xjtlujoe
        3
    xjtlujoe  
       Mar 7, 2017
    哪个看得懂看哪个
    xjtlujoe
        4
    xjtlujoe  
       Mar 7, 2017
    不过算法导论属于很多人都说看过, 其实没看过。。我感觉要实战的话, 没必要看算法导论 如果对计算机科学感兴趣,可以闲时看看,初学者看算法导论明显不合适。
    hd7771
        5
    hd7771  
       Mar 7, 2017 via Android   ❤️ 2
    推荐刘汝佳的《算法竞赛入门经典》。真的一句废话都没有,我觉得应该是最功利的一种方式。
    jmc891205
        6
    jmc891205  
       Mar 7, 2017 via iPhone
    都可以 都是好书 选哪本不重要 坚持看完才有用
    xjtlujoe
        7
    xjtlujoe  
       Mar 7, 2017
    Robert Sedgewick 的<算法>明显更好入门。
    peneazy
        8
    peneazy  
    OP
       Mar 7, 2017
    @shenyi26 不会 java 。。。暂时没太多时间学一门新语言
    hd7771
        9
    hd7771  
       Mar 7, 2017 via Android
    千万别看算法导论和某些教科书,本来没多少的东西能把你绕晕。
    peneazy
        10
    peneazy  
    OP
       Mar 7, 2017
    @svenFeng
    @xjtlujoe 决定先看 C 语言算法那本,穿插看看《算法导论》,真的不会 java ,不知道现在从 0 学 java 要不要花很多时间
    peneazy
        11
    peneazy  
    OP
       Mar 7, 2017
    @hd7771
    @jmc891205 那都大概看一下,选一本合适自己的了
    lovedebug
        12
    lovedebug  
       Mar 7, 2017
    算法 Java 版 推荐
    lovedebug
        13
    lovedebug  
       Mar 7, 2017
    入门的话 算法设计与分析基础 也不错
    peneazy
        14
    peneazy  
    OP
       Mar 7, 2017
    @lovedebug 感谢,好多人推荐 Java 那本了,回头都找来看一看
    R2lsYmVydCBXb25n
        15
    R2lsYmVydCBXb25n  
       Mar 7, 2017 via iPhone
    @peneazy 从头学 java 要不了多长时间的,无非熟悉熟悉库函数
    musk
        16
    musk  
       Mar 7, 2017 via iPhone
    强推 算法,值得拥有
    Ouyangan
        17
    Ouyangan  
       Mar 7, 2017
    在看 算法第四版
    peneazy
        18
    peneazy  
    OP
       Mar 7, 2017 via Android
    @R2lsYmVydCBXb25n
    @musk 感谢,这么多人推荐《算法》,有点想花一两周时间学学 java 入门的课了。
    jmc891205
        19
    jmc891205  
       Mar 7, 2017 via iPhone
    @peneazy 不想学 Java 的话可以读 Sedgewick 写的另外一本书《算法: C 语言实现》
    话说回来 算法第四版讲的其实都是数据结构
    whahugao
        20
    whahugao  
       Mar 7, 2017
    @hd7771 +1
    直接上这种书 没有废话
    peneazy
        21
    peneazy  
    OP
       Mar 7, 2017 via Android
    @hd7771 你推荐的这本书今天也找找看看,看看有没有葵花宝典的功效😁
    misaka19000
        22
    misaka19000  
       Mar 7, 2017
    《数据额结构与算法分析: Java 语言描述版》和那本《算法 4 》我都看过,个人认为《数据额结构与算法分析: Java 语言描述版》这本更好,不太明白为什么有那么多人推荐那本 Java 红书,贼厚,而且个人觉得废话很多,感觉买的很不值。
    UnitTest
        23
    UnitTest  
       Mar 7, 2017
    刚开始看的 数据结构与算法分析 , 感觉入门了 , 对算法有点熟悉了 .
    但是总觉得理解不够深入 , 又看了算法导论.
    nagato
        24
    nagato  
       Mar 7, 2017
    算法导论
    LancerXin
        25
    LancerXin  
       Mar 7, 2017
    算法导论真的看不下去,我买了一本,现在当字典来看....
    onyourroad
        26
    onyourroad  
       Mar 7, 2017
    曾经在网上见过一个大神《算法导论》、《数据结构与算法分析—— C 语言描述》、还有严蔚敏的《数据结构》三本一起看,《算法导论》看部分章节,当字典辅助看。我也最近也在恶补, https://github.com/Lucky4/Data-Structures-and-Algorithm-Analysis-in-C
    dtysky
        27
    dtysky  
       Mar 7, 2017
    @peneazy

    那都不是事,我就是看到那本算法,但我自己不是用 JAVA (巨讨厌这门语言),而是用 C++写的

    这东西本来就和语言没啥关系。。。主要是思想
    besto
        28
    besto  
       Mar 7, 2017
    我来推荐一本《算法设计》。

    《算法导论》是经典,不过认真读完的有多少?
    《算法》是神大神高德纳的徒弟的作品。
    《数据结构与算法分析: C 语言描述》如果没记错,作者是上面一位的学生?
    dif
        29
    dif  
       Mar 7, 2017
    《算法的乐趣》会不会被人捧,《算法导论》倒是买了,无奈功底太差
    hitmanx
        30
    hitmanx  
       Mar 7, 2017
    <算法> java 版+1
    lonenol
        31
    lonenol  
       Mar 7, 2017
    建议别看算法导论,全是公式,你看算法无非是为了面试,看下常用的一些算法,去 lintcode 上刷刷替就 ok 了
    aidchow
        32
    aidchow  
       Mar 7, 2017 via Android
    数据结构与算法分析 java 语言描述和 上面推荐的算法 4 我都看了,对比还是算法四的内容好懂,所以我也比较推荐算法四
    lijianying10
        33
    lijianying10  
       Mar 7, 2017
    个人觉得。这两本书都不是正解。
    你可以学习一些专门应对面试的算法。
    所以你可以先试试 LeetCode 刷两遍。
    sorra
        34
    sorra  
       Mar 7, 2017
    《数据结构与算法分析》确实写得好,至于全不全不好说
    Gsyc1
        35
    Gsyc1  
       Mar 7, 2017
    只看过《算法导论》,是好书,另一本只是翻了翻,算导是伪代码写的算法,写的伪代码很像 Python ,比另一本深入一些,但是厚度厚很多,看起来要花费的时间多一些(另一本薄很多啊),而且像是一本从入门到中级,从算法介绍到算法分析的 xx 大全或者 xx 宝典之类的书。
    WangYanjie
        36
    WangYanjie  
       Mar 7, 2017
    虽然没看过 《数据结构与算法分析: C 语言描述》,但直觉告诉我两本书可能不是一个类型的。
    withrock
        37
    withrock  
       Mar 7, 2017
    看过《数据结构与算法分析: C 语言描述》,这本书对算法学习和入门更有帮助。
    irenicus
        38
    irenicus  
       Mar 7, 2017
    算法导论更像一本数学书,看了半本就看不下去了,又枯燥又难,看得又慢
    除非你真有时间,想了解各种数据结构、算法,以及他们之间的性能比较的话,算法导论倒是一本好书,甚至你会发现面试问的算法题可能只是这本书里习题的一个变种

    建议还是找本“功利”一点的书看吧
    chaleaoch
        39
    chaleaoch  
       Mar 7, 2017
    后者,前者尼玛就是本理论书籍.

    而且数据结构看看书还是不错的.算法的话我感觉还是得敲代码.

    例如 leetcode?(是这么拼?)忘记了..
    billlee
        40
    billlee  
       Mar 7, 2017
    野生的还是别直接看算法导论吧,这本书太多数学内容了,大部分都在分析算法复杂度
    ltm
        41
    ltm  
       Mar 7, 2017
    都看过,推荐《数据结构, C 语言描述》
    shijingshijing
        42
    shijingshijing  
       Mar 7, 2017   ❤️ 1
    算法导论不建议直接看书,有个 ppt ,是 MIT 讲课用的,先翻这个,不懂的再仔细看书。

    其实新手不推荐看算法导论,主要是压力太大了,那么厚一本,而且都是伪代码,看半天看不懂或者花了好长时间看懂了发现效率怎么这么低,很容易产生挫折感。

    建议还是看 java 或者 C++的算法书,最好是不太关注太底层的实现的,专注方法本身,算法跟数学一样,本来是很有意思的东西,但是弄不好就会产生挫折感,并不是你笨,而是没有找到合适的方法,适合自己的方法。

    所有与算法相关的,我都建议先看那种直接撸代码能跑出效果来的,然后自己慢慢调,这样会有持续的成就感,这点很重要,要有持续的激励。
    peneazy
        43
    peneazy  
    OP
       Mar 7, 2017
    @shijingshijing 感谢你详细的建议。你这么一说,想起了高中那会儿做算法题,根本不知道这东西和 cpu 、内存有关系,纯粹就是好玩,像脑筋急转弯那种感觉
    peneazy
        44
    peneazy  
    OP
       Mar 7, 2017
    peneazy
        45
    peneazy  
    OP
       Mar 7, 2017
    回复的人太多了,不一一感谢了。正在看那本竞赛书,如获至宝,没有废话,拿起键盘就是干
    shijingshijing
        46
    shijingshijing  
       Mar 7, 2017
    @peneazy 是的,我开始就是看的 C ,从链表开始就要应对底层的指针,我还是从嵌入式转过来的,当初微机原理,计算机架构, x86 汇编基础都还可以,看起来都觉得麻烦,主要是需要应付很多底层实现,但事实上算法应该更侧重于方法本身,他的确是需要一点底层的知识,但更重要的是方法,特别是到了后期学图论,运筹学,优化以及图形学,图像处理方面,其实跟底层没啥关系了,很多高阶算法都是在 Matlab 里面做的,只是在应用的时候,对性能有要求,才会用 C/C++去实现。

    其实算法就是算法,而算法的实现,有 Matlab(高阶抽象语言,最接近人类语言)实现, Java/C++/C 实现,以及 FPGA/VHDL 实现,理论上同一个算法, Matlab 实现性能最低,但是最方便; FPGA 性能最高,但实现难度最大。
    kmdd33
        47
    kmdd33  
       Mar 8, 2017 via iPad
    @peneazy 到底是哪本竞赛书?链接发一下?具体英文名称
    dlsflh
        48
    dlsflh  
       Mar 8, 2017 via Android
    想知道硕士读的啥…
    peneazy
        49
    peneazy  
    OP
       Mar 8, 2017 via Android
    @kmdd33 回复里有
    peneazy
        50
    peneazy  
    OP
       Mar 8, 2017 via Android
    @dlsflh 非计算机专业
    jimzhong
        51
    jimzhong  
       Mar 8, 2017
    两本都看过。《算法导论》采用伪代码,更偏向理论,更深入。《数据结构与算法分析》是 CS@ZJU 数据结构课教材,算法分析部分不如前者。
    jiongxiaobu
        52
    jiongxiaobu  
       Mar 8, 2017 via iPhone
    CLRS 好啊 知其所以然
    seki
        53
    seki  
       Mar 8, 2017
    也可以考虑刷刷题,比如 codewars , leetcode 这样的
    tieshu
        54
    tieshu  
       Mar 8, 2017
    算法导论。。。 这部太过教科书了!写得很晦涩,很容易看崩溃。推荐《算法》第四版 红色封面这本,不过是 java 语言写,但都是一些基础语法,有编程基础的不难理解。
    mutalisk
        55
    mutalisk  
       Mar 8, 2017 via iPhone
    这两本都不错
    yongSir
        56
    yongSir  
       Mar 18, 2017   ❤️ 1
    不明白那么多人推荐
    算法第四版
    真的都是认真看过的吗?

    还仅仅是因为图多名字拽



    不做推荐
    自己哪个能看的进去就看哪个
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5613 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 132ms · UTC 08:58 · PVG 16:58 · LAX 01:58 · JFK 04:58
    ♥ Do have faith in what you're doing.