V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
peneazy
V2EX  ›  程序员

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

  •  
  •   peneazy · 2017-03-07 08:02:28 +08:00 · 10069 次点击
    这是一个创建于 2820 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    这东西本来就和语言没啥关系。。。主要是思想
    besto
        28
    besto  
       2017-03-07 10:49:33 +08:00
    我来推荐一本《算法设计》。

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

    建议还是找本“功利”一点的书看吧
    chaleaoch
        39
    chaleaoch  
       2017-03-07 18:26:28 +08:00
    后者,前者尼玛就是本理论书籍.

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

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

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

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

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

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

    还仅仅是因为图多名字拽



    不做推荐
    自己哪个能看的进去就看哪个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2581 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:44 · PVG 23:44 · LAX 07:44 · JFK 10:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.