《算法导论》还是《数据结构与算法分析: C 语言描述》 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
peneazy
V2EX    程序员

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

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

    野生程序员一枚,硕士毕业后才学的前端,昨天去一网易美团级别的公司面高级前端,本来自己会写 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 上面还有相应的课程.
    Em5O7B1JGfjQnBry
        2
    Em5O7B1JGfjQnBry  
       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     Solana     2451 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:01/a> PVG 10:01 LAX 19:01 JFK 22:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86