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

关于算法的学习

  •  
  •   b0644170fc · 59 天前 · 1333 次点击
    这是一个创建于 59 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在学习算法,我发现智商太不够用了。比如最近看的一个字符串排序的算法”键索引计数法“,按照书本所说这已经是比较基础的算法了,可是我花了好几个小时才想明白,期间还各种百度。我觉得不太好理解的一个原因是因为书本上的语言太晦涩了,所以有点看不懂,后来找了一个代码看了下就容易明白了。
    我在想,能创造出这个”键索引计数法“的人,真是厉害。他是怎么想出来的呢。如果是我的话,这辈子估计都想不出来这种算法。所以我觉得不我不可能创造一个算法,只能学别人创造出来的,感觉这样非常没有前途
    大家对学习算法有什么看法和建议
    6 回复  |  直到 2019-06-27 02:04:34 +08:00
        1
    Raisu   59 天前 via Android
    写上教科书的算法想不出来是正常的。
    我第一本算法书就是 算法导论
        2
    ninechapter   59 天前
    算法的学习,70%靠实践,30%靠理论。通过积累一定的刷题量,可以完成实践和总结。建议在 lintcode 上面做算法题,有 2000 多道,按类别做上 3 个月,如二叉树、二分法、动归、图论这些,一定有质的飞跃。
        3
    Heartbleed   59 天前 via Android
    之前在学红黑树的时候就在感慨怎么会有人想出这种东西...
        4
    Oz2011   59 天前   ♥ 1
    如果觉得自己智力不够,那放弃也没关系。算法导论里至少前面那些基本的数据结构 list stack array map set hash 要非常了解,还有各种操作的复杂度,算法导论我觉得至少要读到动态规划那。

    其实复杂的算法在日常工作中也不是经常用到,也就是上面说的那些数据结构 要用的时候选择复杂度好的。工作我觉得就够了。

    很多人练算法主要是为了面试,尤其是美国公司面试算法的很多。确实理论上你不用看太多,稍微看看可以去 leetcode 先捡 easy 的做。easy 的能做完我觉得其实就比大部分,至少 70%的人要好了吧。向链表反转,求交点这种都是以前面试经常会问到的题目。
        5
    zetary   59 天前   ♥ 1
    别人做研究的也不是一天提一个算法, 很多算法是在漫长的岁月中一点点被提出来的, 而且研究者通常要做理论分析, 当你去做分析的时候你会有意识地去避免复杂度高的操作, 这样子也能提供一点基本的想法吧. 学的话慢慢来没关系的, 熟悉了就好了.
        6
    ayyll   59 天前 via Android
    多刷 dp 最好和别人一块 你会知道什么叫智商碾压
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   786 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 22:15 · PVG 06:15 · LAX 15:15 · JFK 18:15
    ♥ Do have faith in what you're doing.