现在真有面试官会问 Python XXX 的时间复杂度是多少这种问题吗

2023-10-24 16:35:39 +08:00
 rev1si0n
我觉得说这些的可能都是临时上岗的其他语言从业人员。
2243 次点击
所在节点    Python
23 条回复
julyclyde
2023-10-24 17:56:47 +08:00
是问某个库的时间复杂度?还是问应聘者写的程序的复杂度?
如果是后者,那不是理所当然吗?
XxxxD
2023-10-24 19:47:42 +08:00
这种还好吧
sadfQED2
2023-10-24 19:50:55 +08:00
除了 java 面试官,其他任何语言的面试我都没遇到过问这种问题的。java 出身的面试官动不动就是 xxx 方法是不是线程安全,xxx 方法怎么实现的,xxx 框架怎样工作的
learningman
2023-10-25 01:35:30 +08:00
这和语言有啥关系,这不常识吗
loolac
2023-10-25 08:42:18 +08:00
@learningman 但实际用不到,只有衡量代码质量是能用到。但代码写的好了,到最后也没用。因为暂时找不出更优化的算法来了。现在的软件,时效性比质量更加重要。
tigerstudent
2023-10-25 08:54:07 +08:00
只是用来过滤一部分本科课程学得渣的人而已
hoopz
2023-10-25 09:31:02 +08:00
我反正不问,就是开发个 CRUD 应用,要啥时间复杂度。。。

如果面试官问了,无论是真用,还是企业/部门文化就这样,如果你又不会,那就说明双方不匹配呗,换一家面:)
rev1si0n
2023-10-25 09:54:44 +08:00
@julyclyde 问的:list 插入元素的时间复杂度,咋的他自己还有能力改造不成。

@learningman 我觉得这在实际应用中很少见,如果是性能相关的工作那当我没说,但是都用纯纯 Py 了,几个真会在乎那几毫秒呢。
Morxi
2023-10-25 10:16:53 +08:00
我之前一个本地文件遍历(只获取文件名和大小)拿纯 C 写不到 1000ms ,同事写的 Py 跑了 20 分钟还没遍历完,帮他去掉了重复递归之内的算法脑瘫操作时间优化到了十几秒
wsn
2023-10-25 10:48:06 +08:00
都用 py 了,还用考虑性能嘛
NoAnyLove
2023-10-25 12:00:39 +08:00
为啥不会,都明明白白写在官方 wiki 上了,算作常识吧。基本上能过滤调那些就只会 Python 语法的人
rev1si0n
2023-10-25 13:07:57 +08:00
@NoAnyLove 怎么,内置的数据结构还需要你去优化吗,按你的道理来说,原来我只是个会点 Python 语法的人,失敬失敬。
NoAnyLove
2023-10-25 13:15:23 +08:00
@rev1si0n 了解 Python 基本数据结构操作的时间复杂度就等于要让你去优化内置的数据结构?你这是怎么得出这个因果关系的?简单来说,了解它有助于选择合适的数据结构去实现需要的应用场景。我只是如实表达自己的观点而已,你不同意也没必要在这里阴阳怪气
rev1si0n
2023-10-25 13:18:37 +08:00
@NoAnyLove 那你又是怎么得出不记得 On01 就是只会点语法的呢,你也没有必要在那里显得多高级,来用你的理论+常识去写一个 https://github.com/rev1si0n/lamda
rev1si0n
2023-10-25 13:25:07 +08:00
@NoAnyLove 不跟您掰扯了,我的错我的错,我没考虑到还是有一部分专业和人员还是会用到这些理论的。
NoOneNoBody
2023-10-25 13:54:34 +08:00
问这个问题能过滤掉一批非科班出身的,例如我
但科班出身的写 python 却又不多,筛孔太小,会导致剩下可选的人太少,这是另一个问题

纯 python 写不出什么大用途的项目,往往依赖的都是三方包,但引入包后又怎么判断时间复杂度呢?
所以,招 python 应该会更偏向重视调试能力,而不是理论知识

另一种可能是看有没有优化意识,就是第一次写就开始考虑减少循环次数,而不是不管三七二十一直接全遍历,懂复杂度的人往往都有这种意识。所以目的不是考复杂度知识,而是自行优化的意识和能力
karatsuba
2023-10-25 15:51:12 +08:00
考一些底层数据结构知识吧,毕竟是个程序员都熟练使用 python ,总要过滤一下
HyperionX
2023-10-25 16:14:14 +08:00
你要是刷题的话应该知道把,最基本的数据结构,大一大二就学。
MoYi123
2023-10-25 16:39:13 +08:00
@rev1si0n 不是故意找你茬啊, 一个 4.3k star 的项目 0pr, 50 个 issue, 感觉和我所熟悉的项目不太一样啊.
UN2758
2023-10-25 17:42:09 +08:00
看简历或者要求,如何我面试,看到你是科班毕业,我大概率会问,比如 python 的 sort 实现是 TimSort,是归并排序的优化版本,复杂的你猜都应该猜个 O ( nlogn )

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

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

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

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

© 2021 V2EX