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

关于《算法导论》的一些疑惑

  •  
  •   NightVermouth · 2016-03-18 12:42:22 +08:00 · 10805 次点击
    这是一个创建于 2951 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在看《算法导论》,书上有很多的数学证明。 我目前的策略是基本跳过, 重点看思路和代码实现。 不知各位 V 友们是怎么对待书上的数学证明的, 是否有必要或者有多大必要去深入研究数学证明?

    55 条回复    2016-03-21 09:03:00 +08:00
    lsmgeb89
        1
    lsmgeb89  
       2016-03-18 12:43:32 +08:00
    那你习题也跳过?
    jsonline
        2
    jsonline  
       2016-03-18 12:45:45 +08:00 via Android
    跳吧 用测试证明
    NightVermouth
        3
    NightVermouth  
    OP
       2016-03-18 12:48:22 +08:00
    @lsmgeb89 涉及数学证明的习题我也跳过。。。
    morefreeze
        5
    morefreeze  
       2016-03-18 13:15:04 +08:00
    如果是实用角度的话,跳过没啥,你只要知道堆顶上是最小元素就行。如果你要问为啥呢,或者问如果这样这样改行不行呢(多出现在练习里),你就需要看数学证明。
    证明看多了也就习惯了,慢慢就懂了。特别前面几章求复杂度和怎么证明循环不变式要多琢磨。(然而你让我证明我也忘了;D
    ProfFan
        6
    ProfFan  
       2016-03-18 13:15:10 +08:00
    有个笑话,所有写着 Introduction to Something 的数学书都不是人读的。
    Lpl
        7
    Lpl  
       2016-03-18 13:29:41 +08:00
    如果这样子的话,没必要买算法导论。买点其他的,比如 java 数据结构、算法思路之类的东西,然后刷点题。感觉算法导论对于数学弱和算法弱的同学有点超纲。。。反正我是看的不太懂,多看几次,手动建模才能慢慢理解
    wshcdr
        8
    wshcdr  
       2016-03-18 13:33:34 +08:00
    算法导论需要聪明点的人去看
    NightVermouth
        9
    NightVermouth  
    OP
       2016-03-18 13:37:56 +08:00
    @wshcdr 智商多少算“聪明点”?
    zacard
        10
    zacard  
       2016-03-18 13:45:46 +08:00
    几年前看过其中一章,简直痛苦啊。看几行就不得不去查下早已遗忘的数学公式。现在吃灰中。。。
    alienx717
        11
    alienx717  
       2016-03-18 13:48:20 +08:00
    我靠买了都没看,压箱子底了
    tempuseraccount
        12
    tempuseraccount  
       2016-03-18 13:50:07 +08:00
    网易公开课有 MIT 的课程,带中文字幕,边看边学,很有帮助
    hooluupog
        13
    hooluupog  
       2016-03-18 14:06:08 +08:00   ❤️ 1
    有很多国外和国内的算法教材,很经典的,偏向于实现。
    《算法导论》这本书偏理论和证明过程,上面的代码也都是伪代码,并不适合入门,《计算机编程艺术》那本书就更夸张了。即使搞 acm ,也不一定非要看算法导论。

    你可以看看 Weiss 的《数据结构与算法分析 C++描述》,以及《算法》(java 实现的)。
    国内的教材可以看严蔚敏的 c 语言版算法教程(这个还有一整套电子版以及可视化算法演示程序,方便学习)。
    算法导论可以做参考,数学基础不好可能会很吃力。如果不是从事研究工作,感觉没有必要在这上面花费太多精力。当然感兴趣除外。
    MCVector
        14
    MCVector  
       2016-03-18 14:07:05 +08:00
    可以先看看 concrete mathematics
    snnn
        15
    snnn  
       2016-03-18 14:07:12 +08:00 via Android
    @hooluupog 对你的第一段完全赞同。
    echo1937
        16
    echo1937  
       2016-03-18 14:24:40 +08:00
    @snnn Weiss 的《数据结构与算法分析 C++描述》这书我有,但是我不会 C++,只好学了 Java 去看<算法>。
    66CCFF
        17
    66CCFF  
       2016-03-18 14:35:50 +08:00 via iPhone
    我认为这是本工具书,看看需要的即可。
    neoblackcap
        18
    neoblackcap  
       2016-03-18 14:39:37 +08:00
    @MCVector 那本不是配合 TAOCP 来看的吗?

    CLRS 没看多少,不过那本书不是本科学习用的吗?按道理也难不到哪里去啊,一些简单的证明我觉得还是很有必要要看看的,有些地方觉得还是《算导》讲得更好。比如《算法》强连通分量算法那节里面,我一直都不明白为什么要对一个有向有环图进行拓扑排序,后来看了 CLRS 才恍然大悟,原来将所有强连通分量看成一个节点,那么这个有向有环图就可以变成一个有向无环图,这是就符合之前的说法,有向无环图才会有拓扑顺序。

    个人觉得数学证明还是要看的,要去理解。理解了就好了。不能理解,死记这些原理,根本学不通。这样学来又有什么意义,还不如直接调用各类语言提供的算法,第三方库。
    jatesun
        19
    jatesun  
       2016-03-18 15:26:02 +08:00
    看算法导论纯属找虐,各种证明。有那时间还不如看看算法设计分析基础提升提升算法设计能力
    crayygy
        20
    crayygy  
       2016-03-18 15:32:12 +08:00
    看《算法》第四版吧,真的。之前看算法导论,看到要死要活什么都不懂一度怀疑人生,最后发现,《算法》这本书才是工程性质学习算法的比较好的选择。代码多,话语简介。
    vanxining
        21
    vanxining  
       2016-03-18 16:03:52 +08:00
    数院的人不懂计算机,计算机的人不懂数学。
    所以大部分机器学习的论文都很水。
    loryyang
        22
    loryyang  
       2016-03-18 16:08:33 +08:00
    我当时读的时候会看一部分的证明,事实证明,到现在为止,没用。
    不过你如果当做思维锻炼的话可以看看,好多东西不一定是带给你知识的,他们可以带给你智力
    Finalcheat
        23
    Finalcheat  
       2016-03-18 16:24:36 +08:00
    我认为没必要。主要看伪代码和文字描述的解题思路就行了。
    riaqn
        24
    riaqn  
       2016-03-18 16:51:58 +08:00 via Android
    @vanxining 每年投稿一万篇录取一千篇,水分可想而知…
    mahone3297
        25
    mahone3297  
       2016-03-18 17:25:38 +08:00
    @hitmanx 为什么他自己的网站上没有中文版。。。亚马逊上到是有。。。有点想看看算法第四版这本书的电子版。
    hitmanx
        26
    hitmanx  
       2016-03-18 17:30:30 +08:00
    @mahone3297 貌似中文版只有实体版 http://www.ituring.com.cn/book/875
    NightVermouth
        27
    NightVermouth  
    OP
       2016-03-18 18:36:09 +08:00
    @hooluupog  《数据结构与算法分析》我看过 Java 版,我个人感觉这本书在某些地方讲的不是特别的细,比如一上来的复杂度分析方式。
    @neoblackcap 比较认同你的观点。
    ssynhtn
        28
    ssynhtn  
       2016-03-18 19:39:08 +08:00 via Android
    MIT 的算法导论课根本就不讲究什么代码实现。
    整个课程绝大部分内容都是数学证明,代码都是用伪代码,只有大作业才要用代码实现的
    sbpcx
        29
    sbpcx  
       2016-03-19 00:02:49 +08:00
    本以为买了能看的,结果注定吃灰了,现在床头呢,
    random2case
        30
    random2case  
       2016-03-19 00:37:04 +08:00
    @mahone3297 @hitmanx 俺这里有电子版的 算法,不知怎么分享?
    ceclinux
        31
    ceclinux  
       2016-03-19 03:21:04 +08:00
    我不觉得你是入门书。我暑假的时候看过百来页,把题目都做完,实际上没有什么软用。当然,证明什么都很好玩的。

    题外话是如果要北美面试什么的,算法导论里面的东西基本没有,不如刷题。
    haoc
        32
    haoc  
       2016-03-19 04:29:11 +08:00
    不证明,对算法的信心哪来的?
    linux40
        33
    linux40  
       2016-03-19 08:01:29 +08:00 via Android
    放心,绝大多数证明你都看得懂,不然你写一个算法,怎么判断它的正确性和复杂度?
    linux40
        34
    linux40  
       2016-03-19 08:03:55 +08:00 via Android   ❤️ 1
    我算法导论现在除了很难的题, google 都搜不到答案那种跳过了,别的都没跳过,去年 8 月开始的,现在杀到了 26 章。。。
    linux40
        35
    linux40  
       2016-03-19 08:07:54 +08:00 via Android
    至于看到什么程度,我是看到能说服自己,它是对的就好了。。。
    SCaffrey
        36
    SCaffrey  
       2016-03-19 09:16:03 +08:00
    itfanr
        37
    itfanr  
       2016-03-19 11:44:43 +08:00
    @hitmanx 看起来不错。好像在预售?
    itfanr
        38
    itfanr  
       2016-03-19 11:45:57 +08:00
    @crayygy 我看看 楼上有人也推荐了
    itfanr
        39
    itfanr  
       2016-03-19 11:46:44 +08:00
    @SCaffrey 收藏了
    sleeperqp
        40
    sleeperqp  
       2016-03-19 11:47:20 +08:00
    可看可不看吧 如果为了通俗易懂 我更推荐 算法概论这本书 :)
    GtDzx
        41
    GtDzx  
       2016-03-19 13:39:06 +08:00
    汗 没有证明的算法导论大概和百度百科差不多?
    simoncos
        42
    simoncos  
       2016-03-19 13:48:05 +08:00 via Android
    @ProfFan 哈哈,之前遇到一个数学专业的也说,带 Introduction 和带 advanced 的难度简直倒过来。
    qianleilei
        43
    qianleilei  
       2016-03-19 13:59:56 +08:00 via iPhone
    感觉不如直接 leetcode 练起来,遇到不会再学,有个入门之后再看算法导论系统学习不迟
    tvallday
        44
    tvallday  
       2016-03-19 15:15:09 +08:00
    坑爹,当初面试 Google 他们 HR 就叫我复习一遍算法导论再去面试,结果看一周看不了两章,囫囵吞枣似的读,感觉上当了。
    vinceguo
        45
    vinceguo  
       2016-03-19 16:45:57 +08:00 via Android
    个人觉得算法导论的证明写得比较烂,如果是翻译过来的,估计都不能看了。
    随便看看,然后自己推吧,不难的。
    kingcos
        46
    kingcos  
       2016-03-19 18:18:58 +08:00 via iPhone
    明天去图书馆借算法去。。这个帖子太及时了!还有平时练习算法,是多在 OJ 做题还是怎么样呀?估计是走不了 ACM 了,但是不想面试时啥都不会=_=
    NightVermouth
        47
    NightVermouth  
    OP
       2016-03-19 18:31:56 +08:00
    @vinceguo 翻译版确实没法看,我看了一章就换原版了。
    buptrobin
        48
    buptrobin  
       2016-03-19 19:01:01 +08:00
    当年上研时算法导论是课本。。。不看都不行
    wizardforcel
        49
    wizardforcel  
       2016-03-19 20:31:48 +08:00 via Android
    我当时直接看《算法》和 leetcode 题解。

    想清楚你要走学术向还是工程向,工程向看这本书没意义。
    vinceguo
        50
    vinceguo  
       2016-03-19 20:32:13 +08:00 via Android
    部分看不懂也不要纠结,去谷歌一下,总能找到那种解释的非常好的英文博客,常用的一些,维基百科上的解释就已经很不错了
    gxustudent
        51
    gxustudent  
       2016-03-19 23:42:18 +08:00   ❤️ 1
    个人愚见如下:
    1.“学其上,仅得其中;学其中,斯为下矣
    2.“书读百遍,其义自现”
    仅供参考
    CareiOS
        52
    CareiOS  
       2016-03-20 09:23:34 +08:00
    当前买了这本书,不过一直放着没有翻过。现价 10 元处理,不包邮。
    nyanyh
        53
    nyanyh  
       2016-03-20 14:29:33 +08:00
    @CareiOS 求出
    pyufftj
        54
    pyufftj  
       2016-03-21 08:06:23 +08:00
    @CareiOS 当年 20 元买的,现在还是全新的,三年了,看了不到两页
    tianshilei1992
        55
    tianshilei1992  
       2016-03-21 09:03:00 +08:00
    推荐《算法概论》,这本书作为入门书再好不过了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1375 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 23:47 · PVG 07:47 · LAX 16:47 · JFK 19:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.