阿里巴巴2012-10-9 几道笔试题

选择题不太记得了,直接说还有些印象的后面几道题目。

前几到分别考察二分法、二叉树遍历、LRU页面置换算法。

后面算法里如下(大致印象):

1.有两个包甲、乙,甲中有红球800个、蓝球200个,乙中有红球200个、蓝球800个,现随机选一个包,从中选择样本,每次抽取一个球,抽完仍放回包中。现在抽取了11个球,其中红色7个,蓝色4个。问选中的是甲包的概率?

貌似就是一个全概率事件的问题。


2.现有一个数组,其中任意位置A[i] ,与其最终排好序的位置相差为k,2<=k<n,且k 远小于n;即 A[i]在排序之后的位置为[i-k,i+k] 之间。

现要求利用这一信息,对数组进行排序。设计算法,并分析时间复杂度。时间复杂度要求尽可能低(小于O(nk))

    在基本有序的情况下,插入排序是一个不错的选择,任意i位置的数,只需要与其前k个数进行比较,总共最多需比较nk次,是O(nk)的算法。

   有没有更好的算法?积极思考中。。。。


3.给定一个字符串序列:a,b,c,d, aa,ba,ca,da,ab,bb,cb,db,...,aaa,baa,caa,daa,...  

其中a的位置为1,问

1)aaa的位置

2)bcadf的位置

3)1000位置的字符串

4)实现函数find,输入一个字符串,输出它在字符串序列中的位置。


可以看做一颗四叉树,

                                             a,b,c,d

aa,ba,ca,da          ab,bb,cb,db        ac,bc,cc,dc              ad,bd,cd,dd

...

 则任意一个字符串,按四进制计算,没



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值