今天去面试了一家小公司,挺奇葩的。本来就知道是小公司,但是没想到那么小,公司在创客空间,和很多小公司一起租了半层,有点大学里学生创业中心的意思。
出来接我的是HR,很漂亮知性的一位女士。过了一会她带着一位面试官过来,面试官开口竟然说的是英语,妹子是翻译,她告诉我说面试官是韩国人。面试全程英文,我也听得不是很懂。技术问题大概是下面这些,现在记下来,学习。
1. 写一个快排序
快排序基本思想: 找到一个基准,让列表中的数据与基准比较,比基准小的全部放在基准左侧,比基准大的全部放在基准右侧。 这样就形成了两个新的独立的部分,对两部分再分别进行快排序。最后就得到了排序结果。快排序的平均计算复杂度是 O(nlogn), 最差为O(n^2).
2. 协程与线程的区别
一般面试常见的问题是问进程与线程。协程以前只是看到过,觉得是个比较偏的概念。看来还是了解一下的好。
3. TCP 与 RCP 的区别
RCP 没听过。。。RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
4. TCP 与 HTTP 区别
这个答上来了。
5. 介绍一下数据库中的锁。
数据库是一个多用户系统,当多用户并行存取数据库资源时,就是涉及到锁的问题。为了保证不出错,就要加锁了。
数据库中的锁:锁包括行级锁和表级锁, 悲观锁与乐观锁。
6. 知道什么是 greenlet 吗?
http://blog.jobbole.com/77240/ greenlet应该是一种协程实现方案吧。