挖个坑,作为 python 程序员,面试时要求手写二分查找,可以说不么

2014-10-29 14:20:19 +08:00
 JoeShu
不会写,正常么?
18857 次点击
所在节点    Python
129 条回复
mhycy
2014-10-29 16:47:36 +08:00
说回来...
面试时候最怕给的空间不足还要手写.
给个windows记事本上机写都好....
Neveroldmilk
2014-10-29 16:48:59 +08:00
这都写不出来,还是别当程序员了。
tracebundy
2014-10-29 16:50:42 +08:00
懂原理不难吧,之前面试还让手写快排
66beta
2014-10-29 16:57:24 +08:00
楼主想开点,我去面试前端,人家还叫我在白板上写遍历二叉树呢
思路一说就行,但是写出来真心烦啊
soulgain
2014-10-29 17:10:27 +08:00
这个太简单了,不应该不会,懒的写也就算了,不会实在说不过去啊!
hahastudio
2014-10-29 17:11:02 +08:00
@mhycy 先得会这些基础的
遇到不会的先别一下子缴械投降了,先装一装
哪怕脑子真的一片空白呢,装作思考的样子= =
尽量往自己会的算法上套

实在不行了,可以试着把自己能做到的程度说一下,比如:
某一些特殊情况我能想到,可以这样这样做
中间有一些步骤我不太清楚,但是之前和之后的可以这样这样做
kid177
2014-10-29 17:17:35 +08:00
有人说不会手写快排我忍了,作为程序员你说你连二分都不会吗?
lincanbin
2014-10-29 17:18:17 +08:00
你应聘的职位是什么?如果是WEB方面的Python程序员,那会不会是无所谓的。

很多面试官应聘Web后端、手机客户端、Web前端都问跳出来问二叉树、红黑树、冒泡排序、快速排序之类的,不知道问来干嘛?
实际上也不难,找本书突击几天就没问题了,如果是Web方面的Python程序员,以后基本没用到这些的机会。
YORYOR
2014-10-29 17:25:18 +08:00
二分都不会 只会写helloworld?
还有一句话 talk is easy,give me code
freeze
2014-10-29 17:29:15 +08:00
@lincanbin 这些算法不常用。。。写一次就忘怎么破,面试前突击?
evlos
2014-10-29 17:32:34 +08:00
作为 Python 程序员,二分法都写不出来还打算理直气壮拒绝这也太那啥了吧

作为 Web 前后端,不会也就算了,但是人家愿不愿意接受还是个问题,其实花点时间做个题库也不难嘛
yangkeao
2014-10-29 17:38:21 +08:00
二叉还是很简单的嘛~~~

很可惜的告诉你们各种STL sort之后我是不会排序了的。。。。
xylophone21
2014-10-29 17:56:59 +08:00
基本上可以说明对方对你的定位低于你的期望.
paomian
2014-10-29 18:01:13 +08:00
手写二分不算啥吧
loryyang
2014-10-29 18:33:08 +08:00
我觉得现在的情况是:最好不要再让面试者写这些大众题目了。因为有心的人会去准备,他们会把所有sort、所有基础数据结构相关的基础题目都去做一遍,记下来。这样就会出现面试不平等,考评内容对于一部分面试者来讲,是认真准备过的,这其实是不公平的。

当然,另一方面是:如果面试者真的把那么多内容都认真学习了,自身的水平确实也会提升很多。

我在想,我们是否可以这么来,我们准备一个高深一点偏一些的算法,然后准备好各种材料。让面试者现场学习,分析,然后现场写一些伪代码,或者代码实现一部分功能。在学习的时候面试官可以提供帮助。这不仅考察了大家关注的代码能力、思维能力,还考察了快速学习的能力(阅读文档,比如英文文档等),沟通能力(与面试官交流请教),抗压能力(算法本身较难)。再者,你可以提供电脑,让面试者可以进行Google等查阅资料。
notcome
2014-10-29 18:44:48 +08:00
快排也就两个 filter 加 list comprehension 的事情,所以还是用堆排吧。但其实堆排三五分钟也就写出来了。二分这么水不会不应该呀。

(不要让我等小学生产生哦我不用念书了我现在去应聘也能找到个 10k 的工作了的念头好嘛)

不过个人真的神烦二分查找,每次都要调试一两次才搞定。
lijsf
2014-10-29 19:19:51 +08:00
二分要写的没有任何bug还是很考验人的。

int binart_search(int* array,int n,int k)
{
int i=0;
int j=n-1;
while(i<=j)
{
int mid=(i+j)/2;
if(array[mid]>k)
j=mid-1;
else if(array[mid]<k)
i=mid+1;
else
return mid;
}
return -1;
}
semicircle21
2014-10-29 19:26:46 +08:00
楼主愤怒有理, 面试考官没经验, 根本就是校招的路子.
YuenLeon
2014-10-29 19:46:35 +08:00
没关系的,有次面试,我连32bit有符号数的表示范围都说错了,但不能说明我真的不会。
jsq2627
2014-10-29 20:30:35 +08:00
面试前稍微准备准备常用算法吧,什么样的面试官都有。

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

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

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

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

© 2021 V2EX