V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
rev1si0n
V2EX  ›  Python

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

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

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

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

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

    另一种可能是看有没有优化意识,就是第一次写就开始考虑减少循环次数,而不是不管三七二十一直接全遍历,懂复杂度的人往往都有这种意识。所以目的不是考复杂度知识,而是自行优化的意识和能力
    karatsuba
        17
    karatsuba  
       2023-10-25 15:51:12 +08:00
    考一些底层数据结构知识吧,毕竟是个程序员都熟练使用 python ,总要过滤一下
    HyperionX
        18
    HyperionX  
       2023-10-25 16:14:14 +08:00
    你要是刷题的话应该知道把,最基本的数据结构,大一大二就学。
    MoYi123
        19
    MoYi123  
       2023-10-25 16:39:13 +08:00
    @rev1si0n 不是故意找你茬啊, 一个 4.3k star 的项目 0pr, 50 个 issue, 感觉和我所熟悉的项目不太一样啊.
    UN2758
        20
    UN2758  
       2023-10-25 17:42:09 +08:00
    看简历或者要求,如何我面试,看到你是科班毕业,我大概率会问,比如 python 的 sort 实现是 TimSort,是归并排序的优化版本,复杂的你猜都应该猜个 O ( nlogn )
    rev1si0n
        21
    rev1si0n  
    OP
       2023-10-25 17:59:13 +08:00
    @MoYi123 项目是闭源项目,仅客户端以及工具是开源的,可能确实和你熟知的不太一样不好意思,所以你觉得可能有 pr 么,github 就是用来收集使用反馈而已。
    rev1si0n
        22
    rev1si0n  
    OP
       2023-10-25 18:00:13 +08:00
    @MoYi123 但凡看完项目描述都不会不知道。
    rev1si0n
        23
    rev1si0n  
    OP
       2023-10-25 18:05:17 +08:00
    @MoYi123 我也不是跟你抬杠,为啥 ISSUE 少呢,你看文档写到什么程度了,差点就给你保姆级了,稳定性我自己都测试过 N 遍,改写一行代码都要每个设备、安卓 6 、9 、12 功能测一遍,你觉得问题多嘛。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5491 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:36 · PVG 09:36 · LAX 17:36 · JFK 20:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.