程序员们,你们平时在工作中用到算法的情况多吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
refresh

程序员们,你们平时在工作中用到算法的情况多吗

  •  
  •   refresh Aug 6, 2015 11793 views
    This topic created in 3916 days ago, the information mentioned may be changed or developed.
    我指的是狭义的算法,简单的算法我觉得不能算是真正的算法。比如说弄个递归,替换,左右交换之类的。
    我自己平时遇到算法的情况比较少,多数是处理业务/结构/逻辑/策略/规则等。
    44 replies    2018-05-05 03:17:47 +08:00
    Ouyangan
        1
    Ouyangan  
       Aug 6, 2015
    java , 多是业务逻辑 . 看多了博文坚信一点算法是程序的灵魂 , 不甘紧紧做个码农
    Ouyangan
        2
    Ouyangan  
       Aug 6, 2015
    仅仅...
    cxe2v
        3
    cxe2v  
       Aug 6, 2015
    狭义的算法用得不多,因为研究这个的其实应该算是科研工作者了
    df4VW
        4
    df4VW  
       Aug 6, 2015
    狭义的很少,大部分都交给data mining的搞了
    test0x01
        5
    test0x01  
       Aug 7, 2015 via Android
    从大型电信级系统到嵌入式都开发过很久,算法很少用,必竟算法一般比较固定,通常有现成库什么的。更复杂的其实是业务逻辑,特别是电信产品这些高并发的实时系统,一个呼叫几十上百条结点间消息,加上节点内部消息什么的,那才叫搞死。但大数据处理这种得另算,算法对性能影响非常大,做这个就得玩算法了
    mjoseph
        6
    mjoseph  
       Aug 7, 2015
    所以。。。我一直不知到。。为毛前端后端非得那么多的算法面试。。。然后现实已经被bug和feature击溃
    Andiry
        7
    Andiry  
       Aug 7, 2015
    什么叫狭义的算法?红黑树算不算?一致性哈希?Paxos?
    cmonday
        8
    cmonday  
       Aug 7, 2015
    @Andiry 如果是需要自己实现红黑树或者一致哈希,肯定算了。Paxos好像更像是协议而不是算法?
    fox0001
        9
    fox0001  
       Aug 7, 2015 via Android
    相比算法,设计模式用得更多。鄙人从事什么管理系统开发
    cmonday
        10
    cmonday  
       Aug 7, 2015
    @mjoseph 因为面试很短,别的面试方法也很难衡量工程能力,考算法算是退而求其次,至少能看出来你会写程序会思考
    qw7692336
        11
    qw7692336  
       Aug 7, 2015 via Android
    基本不会自己写,但是需要了解一些实现,对读代码也有帮助
    dcoder
        12
    dcoder  
       Aug 7, 2015
    @mjoseph
    以 google 为主的大公司带坏头
    iyaozhen
        13
    iyaozhen  
       Aug 7, 2015
    我只想说书到用时方恨少呀。

    有时候为了解决一个问题,搞出很多莫名其名的方案。但最后发现都是有成熟的、经过验证的“算法”。
    wkdhf233
        14
    wkdhf233  
       Aug 7, 2015
    算法最优是追求,但现实是你能把需求实现了不出bug,谁管你最不最优
    Andiry
        15
    Andiry  
       Aug 7, 2015
    @cmonday 自己实现红黑树这种还真心少见。毕竟是轮子一类的东西
    ch3rub1m
        16
    ch3rub1m  
       Aug 7, 2015
    说实话面试算法用得很少,都有现成库,就算做datamining或者deeplearning也算不上狭义的算法,更多是概率论和机器学习。
    xxm459259
        17
    xxm459259  
       Aug 7, 2015
    用,也需要自己写。

    (不过我的职位就是算法。。。好了,我可以匿了。。
    msg7086
        18
    msg7086  
       Aug 7, 2015
    我面试都考基础算法,比如简单的字符串修改什么的。
    连基础算法题都过不了的话,我怎么相信你能敲出业务逻辑来?
    OpooPages
        19
    OpooPages  
       Aug 7, 2015 via Android
    楼上说的对,面试短短的时间不可能让你写出个业务来,一般考考基础知识,算法就是基础之一。
    vietor
        20
    vietor  
       Aug 7, 2015 via Android
    了解算法的价值在于"需要的时候能够用上"。我主要用在一些特定优化上,有时用现有代码,有时自写。
    hackerwgf
        21
    hackerwgf  
    PRO
       Aug 7, 2015 via iPhone
    完了,按照楼主说的不算简单的算法,那我就真的没用过算法了…
    loggerhead
        22
    loggerhead  
       Aug 7, 2015 via iPhone
    不多,但是 书到用时方恨少
    initialdp
        23
    initialdp  
       Aug 7, 2015
    很少用,印象中只在一个嵌入式设计中应用过二叉树。
    tao1991123
        24
    tao1991123  
       Aug 7, 2015
    算法在于优化程序更好运行。但是现实是求能跑就好不要出bug
    finalsatan
        25
    finalsatan  
       Aug 7, 2015
    确实不多。
    em70
        26
    em70  
       Aug 7, 2015
    算法用得比业务逻辑多的,那叫科学家. 而程序员主要工作应该是工程师成分多一些.
    Tedko
        27
    Tedko  
       Aug 7, 2015 via Android
    得写autocomplete。。。这得有前缀树吧
    go4fun
        28
    go4fun  
       Aug 7, 2015 via iPhone
    逻辑多,算法少。不过因为我的产品涵盖了机器学习的一些内容,所以这方面的算法运用和改进会稍微多点,但只占整个产品的5%。
    orangleliu
        29
    orangleliu  
       Aug 7, 2015
    少的可怜
    azhao
        30
    azhao  
       Aug 7, 2015
    算法能力和逻辑智商成正比
    逻辑智商就是所谓的"潜力"

    不是说不会算法就不够聪明,而是没有办法证明你聪明
    这和考上清华北大不一定很强,但大多数都很强
    考不大学的不一定很差,但大多数都很差

    工作中遇到的问题不定是算法问题,但很多问题是用了算法,会更好的解决
    Cloudee
        31
    Cloudee  
       Aug 7, 2015
    我觉得很多算法不一定会写,不过得知道有那么个东西,适用的场景和性能如何。这样在开发上很多方向上的问题不容易错
    kepenj
        32
    kepenj  
       Aug 7, 2015
    有别于 “自己创造”和“用别人的”
    marffin
        33
    marffin  
       Aug 7, 2015
    算法基础越好,用到算法的机会越多。不会算法的人找不到需要用到算法的工作,自然就觉得没需求。

    随便说几个:
    分布式系统的基础选举算法,没有zookeeper可以用的时候,自己会写一个对付对付么?
    搜索引擎的基础反向索引、jump list、索引压缩,知道了以后至少能看懂Xapian或者Elasticsearch在干什么
    星际二以及XBox天梯的玩家匹配算法TrueSkill,其实原理不复杂,平常自己公司的乒乓球赛用的就是这个算法的简单实现

    其实只要数据量稍微大一点,性能有瓶颈了,想着优化了,对你的算法基础知识的考验就来了。
    ufo5260987423
        34
    ufo5260987423  
       Aug 7, 2015
    我做数据分析相关的工作,本身是做NLP和人工智能的。偶尔还要做下图片处理什么的。

    (⊙v⊙)嗯算法用的不少。
    imcoddy
        35
    imcoddy  
       Aug 7, 2015
    赞同 @marffin 的说法。
    实际的情况还是和工作的内容相关吧,一般的业务更看重的是不要出 bug,但数据量到一定程度的时候,算法的优劣会体现得很明显。
    darkbill
        36
    darkbill  
      &bsp;Aug 7, 2015
    @pandachow 用,也需要自己写。

    (不过我的职位就是算法。。。好了,我可以匿了。。

    +1

    我的职位也是算法,各种控制算法,用于各种工业现场。。。
    socrates
        37
    socrates  
       Aug 7, 2015
    现在库很多,所以很多需要用到算法的地方直接用lib就行了,不过明白算法的时候,会知道lib里面的实现是不是适用
    liujiangbei
        38
    liujiangbei  
       Aug 7, 2015
    算法更多的是看你的思路,并不是真正的要去算法
    realpg
        39
    realpg  
    PRO
       Aug 7, 2015
    一般日常来说,一个大项目顶天用三五次 真正会有成就感的解决了一个问题的思路
    其他都不算啥算法

    一般也就做个网站、业务系统,用不上那么深奥的
    laoyuan
        40
    laoyuan  
       Aug 7, 2015
    我现在正在斗鱼直播用Python 做算法题!我编了8年PHP一个算法都没用过~
    http://www.douyutv.com/laoyuan
    Mark24
        41
    Mark24  
       Aug 8, 2015 via Android
    好像没那么深奥
    Feiox
        42
    Feiox  
       Aug 8, 2015
    如果你是在公司负责写业务逻辑,算法 ~ 额,我是基本用不上。。。
    但如果你是写一些比较抽象的类库,那基本上算法很多啊。比如写 DSL 的时候,基本要完成一个简单的递归下降分析器。另外,我也用过各种红黑树、选举算法等
    或者,在写数据分析?哈哈,全是算法的调用。你要知道算法的大概实现、功能,才能用 的好。。
    yibuyisheng
        43
    yibuyisheng  
       Aug 9, 2015
    前端程序员一枚,基本没啥算法,各种方法都是前辈总结好的,直接按照那种思路写就好了。
    ToT
        44
    ToT  
       May 5, 2018
    recursive call, priority queue, binary search, parse expression string 好像就用过这么多。大部分是 design pattern 和 refactor code
    About     Help     Advertise     Blog     API     FAQ     Solana     850 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 105ms UTC 20:59 PVG 04:59 LAX 13:59 JFK 16:59
    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