社区
C++ 语言
帖子详情
微软笔试
高性能架构探索
2010-09-27 02:51:17
昨晚 微软在学校 有场笔试,因为没在学校,所以没参加,下面是听同学说的,下面是大概的一道算法题目。
其实,也可以说是海笔吧
里面有个算法题目,要求时间复杂度小于N
有一个循环有序数组,比如345612,在这个数组里面查找某个数,要求其复杂度小于N
还有个选择题
合并两个均有序的链表,得到一个大的有序的链表,问什么样的情况下,时间复杂度最差,最差为多少
...全文
287
12
打赏
收藏
微软笔试
昨晚 微软在学校 有场笔试,因为没在学校,所以没参加,下面是听同学说的,下面是大概的一道算法题目。 其实,也可以说是海笔吧 里面有个算法题目,要求时间复杂度小于N 有一个循环有序数组,比如345612,在这个数组里面查找某个数,要求其复杂度小于N 还有个选择题 合并两个均有序的链表,得到一个大的有序的链表,问什么样的情况下,时间复杂度最差,最差为多少
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cswuyg
2010-09-27
打赏
举报
回复
第二题。我想最坏情况应该是:每一次总链增加一个元素(除了最后一个元素),都要比较链1和链2中的元素值。这样的话,好像不是很难。
szszszcw
2010-09-27
打赏
举报
回复
微软在中国的总部设在哪里呀???
ayw215
2010-09-27
打赏
举报
回复
[Quote=引用 8 楼 yshuise 的回复:]
第二题:算法导论上的归并排序自己看下,我也记不起了。
[/Quote]
不用归并
题目里的链表已经有序了
ccz1130
2010-09-27
打赏
举报
回复
int a[lenth],所需查找的数为x
先比较x与a[0]的大小,若x>a[0],则继续往后顺序查找;若x<a[0],则从a[lenth-1]向前查找。
yshuise
2010-09-27
打赏
举报
回复
第二题:算法导论上的归并排序自己看下,我也记不起了。
harderman
2010-09-27
打赏
举报
回复
期待高人给讲解下第二题
xiaoboalex
2010-09-27
打赏
举报
回复
[Quote=引用 5 楼 jim_king_2000 的回复:]
问题是怎么确定哪个区间是单调的?
只要第一个数比最后一个数小,则区间是单调递增的。否则,区间有可能是循环区间。
[/Quote]
的确是这样!划分出来的区间至少有一个是单调的,也有可能两个都是单调的,只要比较首尾元素的大小就可以判定。
是我看错了,不好意思。
Jim_King_2000
2010-09-27
打赏
举报
回复
问题是怎么确定哪个区间是单调的?
只要第一个数比最后一个数小,则区间是单调递增的。否则,区间有可能是循环区间。
xiaoboalex
2010-09-27
打赏
举报
回复
[Quote=引用 2 楼 jim_king_2000 的回复:]
有一个循环有序数组,比如345612,在这个数组里面查找某个数,要求其复杂度小于N
1: 直接二分,得到两个区间,其中必有一个区间是单调的。
判断被查找数是否在单调区间内。若在,则变成普通二分查找。
若不在,去掉该单调区间,goto 1.
[/Quote]
问题是怎么确定哪个区间是单调的?
这个问题是不是漏掉了一个条件:该循环有序数组是一个
等差序列
如果加上这个条件,我觉得这个问题有两种处理方式:
1. 已知min和max: 只要取数组的第一个元素和min进行比较,然后就知道min和max的位置了,由于是等差序列,根据min和max的位置查找某个数是很容易的。
2. 不知道min和max:那就从头遍历数组,依次比较相邻元素,当发现n>m时就可以确定min=m, max=n,然后根据min, max的位置进行查找;如果遍历了N-1次到达数组尾部以后还是没有发现n>m,就可以认为 min=第一个元素, max=最后一个元素,然后进行查找。
ayw215
2010-09-27
打赏
举报
回复
1,二分查找
2,最差的情况貌似是 两个链表一个长m,一个长n,需要比较m+n-1次
Jim_King_2000
2010-09-27
打赏
举报
回复
有一个循环有序数组,比如345612,在这个数组里面查找某个数,要求其复杂度小于N
1: 直接二分,得到两个区间,其中必有一个区间是单调的。
判断被查找数是否在单调区间内。若在,则变成普通二分查找。
若不在,去掉该单调区间,goto 1.
colorfulcode
2010-09-27
打赏
举报
回复
微软
笔试
题
微软
笔试
题
2014年腾讯百度阿里
微软
笔试
题及部分答案
2014年腾讯百度阿里
微软
笔试
题及部分答案,希望对你有所帮助
SSH面试和
笔试
指导
由于SSH部分内容庞杂,各大高校和培训机构在教学中存在着大量的问题。如重点不突出、理解错误等。为了便于大家掌握SSH的重点知识,在面试和
笔试
中轻松通过,肖老师整理了大量的重要试题,并进行了详细讲解!
微软
笔试
试题 很经典啊
最新的
笔试
试题,里面有
笔试
面试经验。以及试题答案的详细解析。
微软
笔试
和面试的题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章