• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Registering
V2EX  ›  程序员

社招还会问 “请手写选择排序算法” 吗?

  •  
  •   Registering · Apr 3, 2015 · 14554 views
    This topic created in 4235 days ago, the information mentioned may be changed or developed.
    昨晚看到一个在线写简历的网站,感觉不错,撸了一个,抱着被鄙视的心发给了一家创业公司的android岗位,今天下午收到面试通知,,去年毕业,这是第一次社招,

    有点疑问请教一下

    1,应该不会问”请手写选择排序算法“ ,,,吧,,,不想花时间去记这些仅用于查阅即可的东西
    2,没了


    工作经验有点少,有两个公司项目经验,两个项目(算两个?),,都比较一般,

    心里没啥底,清明纠结要出去玩,还是好好准备面试,,,
    52 replies  •  2015-04-07 08:32:51 +08:00
    nicegoing
    nicegoing
    Apr 3, 2015 via Android
    1
    我也要面试了,在线简历网站,求楼主分享。
    LukeXuan
    LukeXuan
    Apr 3, 2015
    2
    虽然说查询即可 但是总需要算法常识的
    LukeXuan
    LukeXuan
    Apr 3, 2015
    3
    虽然说查询即可 但是总需要算法常识的
    而且一般都是手写快排吧。。。
    msg7086
    msg7086
    Apr 3, 2015❤️1
    4
    @LukeXuan 手写快排我没这本事,但是手写并排还是应该会的。
    LukeXuan
    LukeXuan
    Apr 3, 2015
    6
    @msg7086 为什么呢 我会quick sort但是不会merge sort
    Mirana
    Mirana
    Apr 3, 2015
    7
    算法基础好的人会拿到更好的offer的
    zhanglp888
    zhanglp888
    Apr 3, 2015
    8
    我曾经花了很长时间,去看算法什么的,后来就都忘了,再后来,连他们的名字也都忘了
    应该会有跟我一样的人吧?
    Registering
    Registering
    OP
    Apr 3, 2015
    9
    @zhanglp888 +1 ,,可能需要反复去看看或者应用到,,才会娴熟于心吧
    chengzhoukun
    chengzhoukun
    Apr 3, 2015 via Android
    10
    @zhanglp888 +1 所以经常搞算法竞赛的有优势
    binux
    binux
    Apr 3, 2015
    11
    虽然我忘了算法的实现和名字,但是我可以推导一个出来。
    FrankFang128
    FrankFang128
    Apr 3, 2015 via Android
    12
    如果实在找不到你有什么亮点,我会问的。
    liuhaotian
    liuhaotian
    Apr 3, 2015
    13
    大概原理知道就算怎么写忘了总能写出来的吧
    @msg7086 我只会二分的快排 / 随机化快排,归并不会
    imlinhanchao
    imlinhanchao
    Apr 3, 2015
    14
    筆試,手寫C++ string類
    bruce
    bruce
    Apr 3, 2015
    15
    写。
    tobeyouth
    tobeyouth
    Apr 3, 2015
    16
    会...
    过往的面试经历里,会考手写算法的大概占总数的一半以上吧。
    还有一些比较细致的,会在你写完之后,跟你一起 review 你的代码。

    最后,我是一个工作中基本没用过各种算法的前端... 囧
    limbo0
    limbo0
    Apr 3, 2015
    17
    基本会快排就可以了,其他的话确实平常不怎么用
    mcfog
    mcfog
    Apr 3, 2015 via Android
    18
    面试官自然有这么问你的权利
    你也有一票否决这样问的面试官的公司的权利
    xcv58
    xcv58
    Apr 3, 2015 via iPhone
    19
    我不觉得这有什么不对,你写完还可以跟他讲讲 标准库 里实现的排序算法的优劣。
    jun4rui
    jun4rui
    Apr 3, 2015
    20
    真理解了,写一个不难啊
    233
    233
    Apr 3, 2015
    21
    现在不知道了,同届研究生毕业那年华为,百度运维校招都是手写起泡排序。。。
    如果你能正确写出个优化后的基本就80%了
    sndnyang
    sndnyang
    Apr 3, 2015
    22
    @233 研究生毕业? 招运维? 还是招开发? 开发写冒泡排序? 虽然不是说冒泡太简单, 真想写出各种小bug 还是很容易的。
    我还以为 写快排 和 图、树的算法会更多呢——很多算法我记得清原理(二分图和最大流到现在都认真看过), 但要我从空白写到全对, 估计得花半个小时以上来调试——
    vbs
    vbs
    Apr 3, 2015
    23
    才毕业一年,还是会问基本的
    但绝不会让手写红黑树。。。
    233
    233
    Apr 3, 2015
    24
    @sndnyang 华为那个是开发,百度是运维。
    和招聘的职位有很大差别。
    但每年量最大,钱相对少的那一批,基本对技术没啥要求。
    phoeagon
    phoeagon
    Apr 3, 2015
    25
    手写selection很容易好吗!又不是让你手写timsort
    Ulu
    Ulu
    Apr 3, 2015
    26
    北美这边面试排序如果写,一般就让你写归并排序或者快排。
    dreamtrail
    dreamtrail
    Apr 3, 2015
    27
    我觉得能手写个排序是最基本的技能吧。。
    zhicheng
    zhicheng
    Apr 3, 2015 via Android
    28
    谁敢让我写快排,我就让他写个朴素贝叶斯过滤器。其实不是说楼上几位在吹,我实话告诉你,除了背下来一天以内不参考其他人的代码写出完全正确的快排基本是不可能的。
    noanti
    noanti
    Apr 3, 2015 via Android
    29
    达到能随手写出伪码的程度就不用怕。伪码写了对面试官也不会计较语法上的错误。
    shiny
    shiny
    PRO
    Apr 3, 2015
    30
    只不过都是在为了面试而练习的算法罢了。
    noanti
    noanti
    Apr 3, 2015 via Android
    31
    @zhicheng 我认识的都不知多少个了。
    tb4649120073rs
    tb4649120073rs
    Apr 4, 2015
    32
    前几天徒手写了个快排,更多只是检查代码能力吧,毕竟算法本身还是很简单的。
    Lamian
    Lamian
    Apr 4, 2015
    33
    看到这么多人说排序写不出来,我就放心了
    wph95
    wph95
    Apr 4, 2015 via iPhone
    34
    @zhicheng 认真搞过竞赛的…尤其是noip的…起码一半都会裸写快排
    notcome
    notcome
    Apr 4, 2015 via iPhone
    35
    表示手写快堆并排毫无压力,但是经常忘了什么是冒泡和选择还有插入,选择好像是
    let (max, rest) = selectMax in max:(selectSort rest)

    哦我全想起来了。
    feetbig
    feetbig
    Apr 4, 2015
    36
    在北美找工作这是必备技能。。
    sandideas
    sandideas
    Apr 4, 2015 via Android
    37
    手写冒泡我是会。。
    快排,知道原理,给我时间说不定能写出来。但是写不出来的概率更大,因为就连c语言都有qsort。。所以真心没动力写
    zhicheng
    zhicheng
    Apr 4, 2015 via Android
    38
    @noanti @wph95 如我说,已经背下来了。这就像写字,我知道怎么写,有些天天写的忘不了。但是有些经常不写的就忘了。
    Voren
    Voren
    Apr 4, 2015
    39
    我觉得这个写不出来没啥,你写一下你的思路也是可以的
    正常的技术面试官看到你能写出思路,说不定更加分
    sndnyang
    sndnyang
    Apr 4, 2015
    40
    @233 也是, 我毕业那年(本科), 华为研发技术一面就让我写了个链表, 排序都没写, 百度运维 笔试直接挂了(有学长发邮件说有运维岗内推,结果没报技术岗)。
    rwalle
    rwalle
    Apr 4, 2015 via Android
    41
    真是奇怪了,为什么有些人写不出快排还感到很自豪。。
    pezy
    pezy
    Apr 4, 2015
    42
    没准就会遇到,其实挺简单的,20行代码自己走一遍吧: https://gist.github.com/pezy/0dc42e10e678cf01ff17
    ipconfiger
    ipconfiger
    Apr 4, 2015
    43
    说点不好听的,冒泡这种级别的“算法”,基本上简单到就算是忘了,花10分钟就能重新推导出来,如果做不到,基本上也不指望这个段位的程序员能正确实现什么稍微复杂一点的业务逻辑了。
    xiaoboost
    xiaoboost
    Apr 4, 2015
    44
    手写快排无压力……
    都是当年背过的……
    tb4649120073rs
    tb4649120073rs
    Apr 4, 2015
    45
    @zhicheng 真的不需要呗... 基本原理就那么简单,怎么写出来反而是看代码功底吧?
    advancedxy
    advancedxy
    Apr 4, 2015
    46
    @pezy 结果没用 3-way partition... 而且你的算法对于全部相同的元素的排序你的算法是O(n^2)的...
    mornlight
    mornlight
    Apr 4, 2015
    47
    如果我去面试笔试,大概之前会花点时间把这种常考的基础题过一遍。
    原理当然能理解,但长时间不写就忘了哪个是哪个了
    NetFly
    NetFly
    Apr 4, 2015
    48
    一般来说...让手写算法比较少..我面试的话...主要还是看给你一个需求...你的思路是什么样的...一个算法...如何设计到你理解是最优的...有个思路就ok了
    Syec
    Syec
    Apr 4, 2015
    49
    以前刷题那段时间各种排序手写分分钟,现在让我写个绝对够怆
    geeti
    geeti
    Apr 6, 2015
    50
    对算法要求低一些的可能会问,但最多就是个快速排序啥的,麻烦的不会让你写。
    算法要求高的,比如google,facebook,默认你知道,考察算法时不会问这种教科书的东西
    sm0king
    sm0king
    Apr 6, 2015❤️1
    51
    其他公司不知道,按照我们公司的情况,只要知道快排的思想,写错什么的完全无所谓,但你得知道什么是快排,思想是什么
    ps:就算你写错了我怎么知道?!因为我都不会仔细看,更不会去测试一下对不对。
    但我最讨厌那种根本不回答的,然后扯出一大堆理由,或者自以为自己很牛爱答不理的那种,嗯,我见过自以为很牛,然后被我同事打脸的。
    Registering
    Registering
    OP
    Apr 7, 2015
    52
    @sm0king 回复点赞!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1800 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 124ms · UTC 06:45 · PVG 14:45 · LAX 22:45 · JFK 01:45
    ♥ Do have faith in what you're doing.