面试手写堆排还是挺难的

2017-02-12 17:04:53 +08:00
 nec
今天面试说手写一个堆排序

之前写过几次

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

所以面试之前,一定要刷算法题啊
8649 次点击
所在节点    程序员
36 条回复
Allianzcortex
2017-02-12 21:54:23 +08:00
。。。。。。我虽然能写出来,但堆排序怎么都不是最简单的吧。。。 @LukeXuan merge sort 是 O(nlogn) 时间复杂度里最好写的啊
davy1995
2017-02-12 21:55:25 +08:00
@LukeXuan 归并不是更好写?
qzheng93
2017-02-12 23:34:53 +08:00
堆排怕不是太长了吧。而且写堆排意义不大呀,毕竟有优先队列的。
oska874
2017-02-12 23:52:45 +08:00
社招还要现场写代码?
owt5008137
2017-02-13 08:09:22 +08:00
归并应该才是最好写。
堆排就从后往前扫一次建堆,然后再扫一次换掉堆顶重新建堆就好了嘛。
之前有一次想到手写堆排发现忘记了,后来特意记了一下就一直没忘。
LokiSharp
2017-02-13 08:44:56 +08:00
LukeXuan
2017-02-13 09:32:26 +08:00
@Allianzcortex
@davy1995
个人感觉吧...其实是我 merge 没写过(多一倍空间所以用到很少) 不过仔细想想应该是 merge 简单或者至少一个级别的。总之比 quicksort 方便多了也形象
zouchuan1993
2017-02-13 10:02:07 +08:00
@wodesuck 你的头像是真的骚
ytmsdy
2017-02-13 10:22:44 +08:00
真的很好奇,面试官出这样子的题目的意义在于什么?
考验面试者技术扎实的程度?堆排这鬼东西,实际 coding 过程中千百年都用不到一次吧?!
blackjar
2017-02-13 10:38:29 +08:00
写 Pseudo code 足够了 思路说清楚 就 ok
wshcdr
2017-02-13 10:43:17 +08:00
堆排算是实际里基本不用的了......要考手写,的确难
woostundy
2017-02-13 14:50:07 +08:00
@LukeXuan
@lonenol
O(N logN)里最简单应该是快排啊
woostundy
2017-02-13 14:53:05 +08:00
感觉归并和快排比较多见,实际用到的也多一点。
堆排突然让写,是挺有难度的。
LedChang
2017-02-13 17:42:26 +08:00
刚考过研的肯定记得,工作那么多年后,我现在就记得是用一个 list 模拟树去操作。
nec
2017-02-15 18:43:22 +08:00
@oska874 当然,考查算法以及编程基础
nec
2017-02-15 18:44:17 +08:00
@Allianzcortex 是啊,快排和归并都比较好写

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/339933

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX