十个题目

1)写一个函数将一个小数转化为分数形式,深度优化,并解释这种优化的原因

     例如f(0.3333333)=1/3  f(1.6666666)=5/3


2) 两个集合,集合内分别由100亿个整数(64位整数),存在部分整数相同,写一段代码,找出这两个集合相同的元素,即集合交集。(注意:集合(set)的科学定义是不允许重复的,这里可以看做一个group,就是一个容纳数字的容器,允许重复)

    例如SET_A={1,1,1,2,2,20,21,4,5,7...}

           SET_B={2,4,5,...}

           SET_A∩SET_B={2,4,5....}

    做深度优化,并解释这种优化的原因 ,如果集合A和集合B的元素均为浮点数(64位浮点数),怎么处理?


3)求解两个矩阵相乘, 矩阵大小为百万行*百万维,做深度优化,并解释这种优化的原因

     例如  1  2 3    *   1    1  = 6   4

                2  1 3        1    0     6   5  

                                  1    1

4)在10亿个英文句子(按行存储)的语料中,任意输入一个语素片段(至少3个英文字母),找出全部包含这段语素片段的句子。

      例如

     i have lunch

     good morning

     hi teacher

     testing...

     输入ing

     返回

     good morning

     testing

 

5)写一段大内存拷贝的代码(拷贝数量超过1G),做深度优化,并和memcpy比较速度。


6)写一段大内存赋值的代码(清零数量超过1G),做深度优化,并和memset比较速度。


7)写一段代码证明linux在等待临界区信号量上是排队的。

   例如

    time1: thread1 enter critical section

    time2: thread2 wait critical section

    time3:   thread3 wait critical section

    time4:   thread4 wait critical section

    time5:  thread1 release critical section

    time6:  here must wake up thread2 because thead2 is the first waiter

   时序上:最旧<time1<tim2<...<time6<最新

   写一段代码证明这个观点是正确的,或者是错误的


8)lock-free,wait-free是什么意思?写一段lock-free的ring buffer或者queue的代码。


9)写一段外排序代码,对100亿个浮点数进行排序,内存限制使用1GB,并作深度优化。


10)找出一个单机上支持100亿key-value查询的key value store,做库速度或者查询速度(冷启动,热启动,单线程,并发)比THUIRDB快。任意一个指标能快即可。

我要啦免费统计


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值