面试手写快排是一个方法,可以刷掉一些人

2019-03-10 06:20:21 +08:00
 Cbdy

听说字节跳动面试手写快排,我感觉虽然有点难,却不失为一个好方法。

我发现一些场景(比如面大厂),面试已经不一定是考察候选人能不能干活了,而是筛选出可能最能干活的一批人。

23144 次点击
所在节点    程序员
135 条回复
kkj678
2019-03-10 06:28:03 +08:00
工作中用到快排的机会有多少,能写出快排对工作上的有多大帮助,花一小时背下快排实现有多难
woodface2233
2019-03-10 06:28:49 +08:00
找低级码农没毛病。人可以不接受
RqPS6rhmP3Nyn3Tm
2019-03-10 06:29:16 +08:00
只考快排,这么简单?
Cbdy
2019-03-10 06:31:08 +08:00
@kkj678
几乎用不到,没什么帮助,正如我所言,只是为了筛选用的
背下来很容易,但是如果不理解,题目变变就可能不会了。比如用底层数据结构用双向链表,比如不用递归等
hjc4869
2019-03-10 06:31:52 +08:00
之前看过一个只需要 5 秒就能背下来的快排实现(逃

let rec quicksort = function
| [] -> []
| first::rest ->
let smaller,larger = List.partition ((>=) first) rest
List.concat [quicksort smaller; [first]; quicksort larger]
kkj678
2019-03-10 06:34:36 +08:00
@Cbdy 其实我觉得面试更应该考察工作时的做事协作方式,还有业务场景的设计和实现思考
Cbdy
2019-03-10 06:41:31 +08:00
@kkj678 确实是的。虽然目前有些科技公司喜欢面算法。我猜估计是因为效率效用高,简单粗暴
(毕竟去 Google 还要会翻转二叉树😄
20015jjw
2019-03-10 06:54:52 +08:00
@kkj678 业务场景的设计和实现思考就是 design 至于协作什么的看瞎扯的时候踩不踩雷吧 我还是觉得算法是少不了的 毕竟这直接反映解决问题的能力
11wangyaoda
2019-03-10 07:03:51 +08:00
快排只是看似简单。细节也很多。
更不用说还有什么双 pivot 的二路快排等等。
好多自以为懂快排的面试官自己都没搞懂。
lihongming
2019-03-10 07:05:37 +08:00
@Cbdy 反转二叉树那是个面试考算法的反例,竟然被你当正面例子了?企业招人不要有用的,却把考试放在第一位!

试问谁最会写算法?除了算法工程师,就是学生。不做算法工作的程序员,若非刻意保持,一年以后肯定把工作中用不到的算法都忘光了。别说快排这种永远用不到的算法了,就是非递归遍历二叉树,都没有多少人能记着,毕竟递归算法已经够用了。

所以,面学生的话考算法没问题,因为这可以考察他们在学校里是否用功。但如果面有经验的还考算法,就不够明智了,那些把心思放在系统架构等更重要的事情上的程序员会被你刷掉,留下一些学生……
kkj678
2019-03-10 07:05:54 +08:00
@11wangyaoda 就像现在前端都在问 v-model 的实现...
carlclone
2019-03-10 07:14:28 +08:00
看到楼上部分人对算法表现出的不屑,真的有点可悲,还有的以为考背就能学算法
ppcoin
2019-03-10 07:34:40 +08:00
头条是链表快排
ejq
2019-03-10 08:27:42 +08:00
私以为
快排可以说是基础算法,甚至是很多人学的第一个正经一点的算法(视情况,也可能是 KMP )了,稍有基础的人就算没用过,提一下应该也能马上想出来

快排的思想谁都知道,如果知道了思想还写不出哪怕一个 naive 的快排,指出了产生 bug 的 case 还不会改
emmmm,就有点意思了

(头条没考你后缀仙人掌已经很好了🐶)

@lihongming
我估摸着那个翻转二叉树显然是玩哏啊
xuanbg
2019-03-10 08:50:25 +08:00
如果我用快排来面试的话,不会让人手写代码,会写代码不代表就会快排算法。我大概会这样提问:
1、什么是快排
2、快排的特定是什么
3、快排的实现思路是什么
4、你刚才说的思路有什么可以优化的地方
xuanbg
2019-03-10 08:51:08 +08:00
@xuanbg 2、快排的特点是什么
diggerdu
2019-03-10 08:57:26 +08:00
@ejq 然后头条面试算法题会不会做并不影响结果....
Cbdy
2019-03-10 09:00:05 +08:00
@diggerdu 那为什么要出?浪费时间是可耻的
lihongjie0209
2019-03-10 09:32:38 +08:00
@hjc4869 空间复杂度多少
dalieba
2019-03-10 09:36:00 +08:00
用人成本高了,公司就会在刷掉人的方面下巭。

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

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

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

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

© 2021 V2EX