社区
C++ 语言
帖子详情
微软笔试
高性能架构探索
2010-09-27 02:51:17
昨晚 微软在学校 有场笔试,因为没在学校,所以没参加,下面是听同学说的,下面是大概的一道算法题目。
其实,也可以说是海笔吧
里面有个算法题目,要求时间复杂度小于N
有一个循环有序数组,比如345612,在这个数组里面查找某个数,要求其复杂度小于N
还有个选择题
合并两个均有序的链表,得到一个大的有序的链表,问什么样的情况下,时间复杂度最差,最差为多少
...全文
304
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
打赏
举报
回复
2011年校园招聘
微软
笔试
题
【标题】2011年校园招聘
微软
笔试
题解析
微软
作为全球领先的科技公司,其校园招聘
笔试
题历来备受关注,因为它们往往反映出最新的技术趋势和
微软
对人才的期待。2011年的校园招聘
笔试
题是众多求职者了解
微软
面试流程和...
2008
微软
笔试
题集锦
《2008
微软
笔试
题集锦》是一个珍贵的资源,专门为那些志在加入全球知名科技巨头
微软
的程序员和应聘者准备。这份题集锦涵盖了丰富的知识领域,旨在帮助求职者提升自己的技能,以顺利通过
微软
严格的招聘流程。
微软
作为...
微软
笔试
和面试的题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
面试题目
微软
笔试
题目及详细解答
详细完整地列出了
微软
曾经考过的各种基础、关键知识点的
笔试
、面试题目。
部分
微软
笔试
题目
###
微软
笔试
知识点概览 #### 公司概况与历史 - **成立时间与创始人**:
微软
公司成立于1975年,由比尔·盖茨和保罗·艾伦共同创立。两人最初通过销售BASIC编程语言起家,之后逐步发展成为全球领先的软件提供商。 - ...
C++ 语言
65,208
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章