关于《算法导论》的一些疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
NightVermouth
V2EX    程序员

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

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

    最近在看《算法导论》,书上有很多的数学证明。 我目前的策略是基本跳过, 重点看思路和代码实现。 不知各位 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
    &nbs;   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 比较认同你的观点。
    kx5d62Jn1J9MjoXP
        28
    kx5d62Jn1J9MjoXP  
       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
    a target="_blank" href="http://study.163.com/plan/planMain.htm?id=64976" rel="nofollow noopener">http://study.163.com/plan/planMain.htm?id=64976
    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 元买的,现在还是全新的,三年了,看了不到两页
    shiltian
        55
    shiltian  
       2016-03-21 09:03:00 +08:00
    推荐《算法概论》,这本书作为入门书再好不过了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1075 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:37 PVG 01:37 LAX 09:37 JFK 12:37
    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