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

2014-10-29 14:20:19 +08:00
 JoeShu
不会写,正常么?
18823 次点击
所在节点    Python
129 条回复
JoeShu
2014-10-29 15:11:00 +08:00
@HerrDu 然后呢,有把纸摔对方脸上么
jox
2014-10-29 15:11:40 +08:00
binary search是很重要的算法,这种算法肯定得整明白啊,写个伪代码又不难
Shared
2014-10-29 15:12:03 +08:00
如果连这么简单的算法都不会写,还是不要说自己是程序员比较好、我一般叫自己编程爱好者
liuyl
2014-10-29 15:12:21 +08:00
手写二分都写不了,有点说不过去了。。
233
2014-10-29 15:13:00 +08:00
二分查找很简单吧...想稍微了解点算法,二分查找是绕不过去的
而且通过猎头找也没什么稀奇的,上海很多工厂类型公司招薪资5K-8K的码农都是靠猎头广撒网
JoeShu
2014-10-29 15:13:36 +08:00
@avastms 递归还不如不写呢,要是我面,即使递归写得出来,也要问 还有没有其他写法?
qiumaoyuan
2014-10-29 15:16:57 +08:00
我感觉这不是简单的写不写的问题。首先得看他招聘的是什么职位,比如招个 Web 开发的要我写二分查找,我会想这公司是不是经常干一些自己都不知道到底是在干嘛的事情。去不去值得考虑一下。很多时候面试不仅仅是公司从你这获取信息。
bingu
2014-10-29 15:17:04 +08:00
巧了,今天刚查了二分查找法,什么叫伪代码啊?
我是编程爱好者啊。
HerrDu
2014-10-29 15:21:04 +08:00
@JoeShu 然后回去默默的用c++写了一遍 快速排序
MasterYoda
2014-10-29 15:21:37 +08:00
@JoeShu 二分的递归和非递归写法区别有那么多吗。。。。。
非递归一个循环而已,low<high的时候,自己调整low和high的值。
手写二分不算过分吧。
EPr2hh6LADQWqRVH
2014-10-29 15:22:36 +08:00
@JoeShu 此言差矣,递归直击算法的本质
apex42
2014-10-29 15:23:46 +08:00
别给程序员丢人了
binux
2014-10-29 15:28:19 +08:00
现在的程序员连二分都不会写了吗?
原来还是快排的。
下次是不是要变成求数组最大值都不会了。。
tioover
2014-10-29 15:38:06 +08:00
之前去实习,给的题就有一道,花了好长时间才写对(而且是类似 Hack 的方法)瞬间感觉自己弱逼……
tioover
2014-10-29 15:40:39 +08:00
二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组。将数组的中间项与T进行比较,可以排除一半元素,范围缩小一半。就这样反复比较,反复缩小范围,最终就会在数组中找到T,或者确定原以为T所在的范围实际为空。对于包含N个元素的表,整个查找过程大约要经过log(2)N次比较。

多数程序员都觉得只要理解了上面的描述,写出代码就不难了;但事实并非如此。如果你不认同这一点,最好的办法就是放下书本,自己动手写一写。试试吧。

我在贝尔实验室和IBM的时候都出过这道考题。那些专业的程序员有几个小时的时间,可以用他们选择的语言把上面的描述写出来;写出高级伪代码也可以。考试结束后,差不多所有程序员都认为自己写出了正确的程序。于是,我们花了半个钟头来看他们编写的代码经过测试用例验证的结果。几次课,一百多人的结果相差无几:90%的程序员写的程序中有bug(我并不认为没有bug的代码就正确)。

我很惊讶:在足够的时间内,只有大约10%的专业程序员可以把这个小程序写对。但写不对这个小程序的还不止这些人:高德纳在《计算机程序设计的艺术 第3卷 排序和查找》第6.2.1节的“历史与参考文献”部分指出,虽然早在1946年就有人将二分查找的方法公诸于世,但直到1962年才有人写出没有bug的二分查找程序。
ven
2014-10-29 15:49:10 +08:00
我觉得二分查找应该算比较基础的算法~作为程序员,手写应该没难度吧~
ffffwh
2014-10-29 15:49:43 +08:00
吓得我立马去写了..
est
2014-10-29 15:51:51 +08:00
你问面试官要不比一比一行python解八皇后看谁先写出来?
duzhe0
2014-10-29 15:52:47 +08:00
二分又不复杂, 手写一下不算过份
noanti
2014-10-29 15:52:58 +08:00
你是来搞笑的么。python里面二分就不用手写了?

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

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

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

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

© 2021 V2EX