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

面试手写堆排还是挺难的

  •  
  •   nec · Feb 12, 2017 · 10086 views
    This topic created in 3552 days ago, the information mentioned may be changed or developed.
    今天面试说手写一个堆排序

    之前写过几次

    临时叫写,还是很难一下写出来

    所以面试之前,一定要刷算法题啊
    36 replies  •  2017-02-15 18:44:17 +08:00
    sagaxu
    sagaxu
    Feb 12, 2017❤️1
    1
    工作了好多年,我都不记得堆排是什么了,每次排序都调的标准库
    happyyl
    happyyl
    Feb 12, 2017 via Android
    2
    反正我不会
    Powered
    Powered
    Feb 12, 2017 via iPhone
    3
    找工作就是刷题加背书
    Yourdaye
    Yourdaye
    Feb 12, 2017
    4
    写的时候不能用手机 google ?
    coderluan
    coderluan
    Feb 12, 2017❤️2
    5
    不刷题确实不容易,虽然嘴上描述或者伪代码出来很容易,但是敲代码细节容易卡住,需要调试才行,面试还要心里压力之类的,很正常。
    Mirana
    Mirana
    Feb 12, 2017
    6
    网络上嘴炮太多了
    gouchaoer
    gouchaoer
    Feb 12, 2017 via Android
    7
    堆排序那么一大堆能写出来的有几个,这面试这么厉害?
    allan888
    allan888
    Feb 12, 2017
    8
    谁家面试让写堆排序了啊?
    gejun123456
    gejun123456
    Feb 12, 2017
    9
    蛋疼的面试,反问面试官让他写一个。
    wodesuck
    wodesuck
    Feb 12, 2017❤️2
    10
    其实堆排还是挺好写的吧,逻辑清晰,相比快排又没什么容易写错的细节。
    (说这样的话会不会被喷呀……
    zgqq
    zgqq
    Feb 12, 2017 via Android
    11
    都是大佬
    binux
    binux
    Feb 12, 2017
    12
    @wodesuck #10 我没记错的话,堆排只有一个调整堆要写啊
    (看那么多人喊难,我只能默默给你点赞
    Em5O7B1JGfjQnBry
    Em5O7B1JGfjQnBry
    Feb 12, 2017 via Android
    13
    堆排还是算简单的吧。。。给纸笔推倒一遍就可以写了吧
    JohnLou
    JohnLou
    Feb 12, 2017
    14
    大公司面试基本都考这些啊,看了楼上,难道我面的是假的?
    scnace
    scnace
    Feb 12, 2017 via Android
    15
    @coderluan 严重同意!
    scnace
    scnace
    Feb 12, 2017 via Android
    16
    伪算法还是直接 code ? 表示不 debug 真写不来……~
    wildlynx
    wildlynx
    Feb 12, 2017
    17
    简单的二分查找算法,很多人也很难一下子手写出正确的程序来。
    hxndg
    hxndg
    Feb 12, 2017
    18
    额。。。。。基本都是就调整需要注意一下。。。剩下的都是几个大概就可以了。。。
    lonenol
    lonenol
    Feb 12, 2017
    19
    堆排应该是最好写的了吧。。
    LukeXuan
    LukeXuan
    Feb 12, 2017
    20
    堆排应该是 O(n log n)里面最好写的了...
    Allianzcortex
    Allianzcortex
    Feb 12, 2017❤️1
    21
    。。。。。。我虽然能写出来,但堆排序怎么都不是最简单的吧。。。 @LukeXuan merge sort 是 O(nlogn) 时间复杂度里最好写的啊
    davy1995
    davy1995
    Feb 12, 2017 via Android
    22
    @LukeXuan 归并不是更好写?
    qzheng93
    qzheng93
    Feb 12, 2017 via iPhone
    23
    堆排怕不是太长了吧。而且写堆排意义不大呀,毕竟有优先队列的。
    oska874
    oska874
    Feb 12, 2017
    24
    社招还要现场写代码?
    owt5008137
    owt5008137
    Feb 13, 2017 via Android
    25
    归并应该才是最好写。
    堆排就从后往前扫一次建堆,然后再扫一次换掉堆顶重新建堆就好了嘛。
    之前有一次想到手写堆排发现忘记了,后来特意记了一下就一直没忘。
    LukeXuan
    LukeXuan
    Feb 13, 2017
    27
    @Allianzcortex
    @davy1995
    个人感觉吧...其实是我 merge 没写过(多一倍空间所以用到很少) 不过仔细想想应该是 merge 简单或者至少一个级别的。总之比 quicksort 方便多了也形象
    zouchuan1993
    zouchuan1993
    Feb 13, 2017
    28
    @wodesuck 你的头像是真的骚
    ytmsdy
    ytmsdy
    Feb 13, 2017
    29
    真的很好奇,面试官出这样子的题目的意义在于什么?
    考验面试者技术扎实的程度?堆排这鬼东西,实际 coding 过程中千百年都用不到一次吧?!
    blackjar
    blackjar
    Feb 13, 2017
    30
    写 Pseudo code 足够了 思路说清楚 就 ok
    wshcdr
    wshcdr
    Feb 13, 2017
    31
    堆排算是实际里基本不用的了......要考手写,的确难
    woostundy
    woostundy
    Feb 13, 2017
    32
    @LukeXuan
    @lonenol
    O(N logN)里最简单应该是快排啊
    woostundy
    woostundy
    Feb 13, 2017
    33
    感觉归并和快排比较多见,实际用到的也多一点。
    堆排突然让写,是挺有难度的。
    LedChang
    LedChang
    Feb 13, 2017
    34
    刚考过研的肯定记得,工作那么多年后,我现在就记得是用一个 list 模拟树去操作。
    nec
    nec
    OP
    Feb 15, 2017
    35
    @oska874 当然,考查算法以及编程基础
    nec
    nec
    OP
    Feb 15, 2017
    36
    @Allianzcortex 是啊,快排和归并都比较好写
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1300 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 22:23 · PVG 06:23 · LAX 14:23 · JFK 17:23
    ♥ Do have faith in what you're doing.