工作五年的游戏后端不知道排序算法的复杂度正常吗?

2022-09-26 12:12:34 +08:00
 Rooger

最近又要开始招聘了,一直以来,这个问题非常困惑我。有个候选人简历上写着:熟练掌握数据结构和算法。 我问那常见的排序算法有哪些,只说出一个,快速排序。我问那时间复杂度是多少,他说 O(logN)。我无语了。 其实面试了这么多,这个是最让我疼的。毕竟说 O(N),还不是太离谱。

15177 次点击
所在节点    程序员
168 条回复
changnet
2022-09-26 14:56:20 +08:00
我也是游戏后端,我也面别人,最讨厌直接问这种问题。平时都是根据业务要求做,不是设计基础组件谁会关注这个,我自己也不知道它复杂度是多少啊,除非我准备跑路刷题。

面试初中级,排序是必问,但我一般都是问,游戏里某个 xx 排序功能,如果让你来实现,你会用哪种算法。只要他能根据业务采用使用合适的算法,并理解这个算法的效率、稳定性,都算过。那怕实际上不是最优的解决方案
Leviathann
2022-09-26 14:57:50 +08:00
这种基础算法的复杂度问题一般是 0 容忍
排序是一个很高频的操作,每个高频操作都应该至少知道 big O
Arrowing
2022-09-26 14:58:36 +08:00
正常,但是不懂装懂就不太好
Leonard
2022-09-26 14:59:44 +08:00
我想到 Homebrew 作者 Max Howell 不会反转二叉树被 Google 拒绝 😂

这些东西平时用不上,记性不好的人时间久了记错了也没啥,不过还是要看整体水平如何
pengtdyd
2022-09-26 15:01:46 +08:00
如果候选者的简历上明确写着《熟练掌握数据结构和算法》,那答不上来就说不过去了。如果没写答不上来,确实情有可原,每个人的经历不同,技能树也点的也不一样,毕竟术业有专攻。但答不出来也从另一个方面反映出了候选者并没有认真的对待自己的简历。
LuckiSnow
2022-09-26 15:01:51 +08:00
对于一个去面试的人来说,不正常,就算工作上用不到,面试前准备下常见的算法和数据结构,对自己和面试官都是起码的尊重,不然问点 OP 提到的基础问题,答不上来,真的双方都很尴尬。
arthas2234
2022-09-26 15:05:53 +08:00
人有多大胆,地有多大产
唬住 50K ,唬不住 5K
vone
2022-09-26 15:06:22 +08:00
所以他的时间复杂度是什么
pengtdyd
2022-09-26 15:08:05 +08:00
我曾经遇到过来面试 JAVA 开发,简历上却写着熟悉,js ,html,css ,我就问了几个 js ,html ,css 的基础问题,结果他没答上来,然后就挂了。如果简历上写了然后你又不会,被问到答不上来,是非常减分的行为,简历上别夸大,如果不会的真的不要往上写。
kkbblzq
2022-09-26 15:10:10 +08:00
不管正不正常,这样的点在面试的时候出现,就是一个比较大的扣分点,就个人拙见来说:就算是一个比较合格的后端开发,我觉得也应该对复杂度有一个大概的认知;何况还是对性能更敏感的游戏后端。
xnotepad
2022-09-26 15:10:37 +08:00
刚毕业那会儿知道,现在我也不记得了。。。
wangritian
2022-09-26 15:18:45 +08:00
会调用排序函数就行,但不能容忍瞎吹牛逼
newmlp
2022-09-26 15:22:09 +08:00
知不知道根本无所谓,
glfpes
2022-09-26 15:22:14 +08:00
这玩意如果都不知道,根本不可能做性能优化。
icyalala
2022-09-26 15:27:48 +08:00
@anonymousar Max Howell 自己在 Quora 上写了它不知道二叉树:
"I wasn’t very clear what a binary tree was. I studied Chemistry not Comp-Sci."
wupher
2022-09-26 15:29:18 +08:00
- 日常工作中真记不得了,一般有疑问的时候上网现查。

- 准备面试应该会先看一回儿,算基本知识吧

- 其实日常工作和面试使用的技术脱节挺大的,比如说 hashMap
sunmker
2022-09-26 15:32:15 +08:00
我发现我也忘记了,我当时毕业的时候会的,哎不说了,不摸鱼了
angryfish
2022-09-26 15:37:01 +08:00
个人觉得,有几个方面的原因。
1.曾经数据结构和算法很厉害,但是工作太久了,又没用过,忘光了,没想到面试会被问到这么基础的东西。
2.这是他随便投的简历,没来得及复习,就被你们喊过去面试了,有点你们常说的“裸考”感觉
3.他瞎写的技能
djyde
2022-09-26 15:37:19 +08:00
我也是经历过从没有受过算法和数据结构训练到刷了不少 easy 到 medium 的题目。工作(业务)中确实很少直接用到算法和数据结构,但它是一个你学了之后会打开你的思路的东西.

它就像一个工具箱,不一定经常在代码里会用到,但如果你根本没有这些工具,你就失去了解决问题的很多思路。而且别人也很难向你证明习得基本的算法和数据结构对你写代码会有什么帮助。就像我经常看到很多人连打字的指法都是乱来的,我也很难向他们说明正确的打字指法可以如何帮助他们更快地打字。

有一句话叫 You don't know what you don't know. 无论是算法数据结构还是正则表达式还是正确的打字指法,都是我亲自习得了才懂得它们给我带来的效益。这些效益不是 0 到 1 的差别,所以很多人会选择忽略它们。回过头看我以前对算法的不屑,都觉得自己很愚蠢,即使我到现在都没在工作中直接用到过算法。
nicebird
2022-09-26 15:44:13 +08:00
正常又不正常。很多游戏后端就是逻辑仔,不知道很正常。不正常的是应付面试,背一背就好了。

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

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

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

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

© 2021 V2EX