库壳的一些有趣面试题
http://coolshell.cn/articles/4162.html
有两个相同功能代码如下,请在在A,B,C是什么的情况下,请给出三个原因case 1比case 2快,还有三个原因case 2会比case 1要执行的快。(不考虑编译器优化)
1
2
3
4
5
|
for (i=0; i<N; ++i){
A;
B;
C;
}
|
1
2
3
4
5
6
7
8
9
|
for (i=0; i<N; ++i){
A;
}
for (i=0; i<N; ++i){
B;
}
for (i=0; i<N; ++i){
C;
}
|
我的第一个反应是——
- case1 要快一些,因为只有一个i++的i<N的操作,而case 2却有三个,这在点上,case 1就比case 2要快。
- case2如果要快的话,有一个原因是,A, B, C其中一个需要去先获得一个资源(比如一个锁),在case1下,每次都要去拿这个资源,而case2下,只需要拿一次然后。但这个可能是不对的,因为我无法想出一个相同的语句块放在case 1中会和放在case 2中有差别。(不过可能比较接近了)
继续思考:这个题有点像是“同步和异步”的问题,case 1是同步,case 2是异步,所以,异步快于同步,也许可以从这个方向出发,写出A, B, C的语句块。
不过,其要三个原因啊。各位,你们有想法吗?
—-更新 1—-
刚才在twitter上与人讨论,发现又有一种情况,case 2要比case 1要快。比如,A, B, C分别访问是不同的内存块(数组),那么case 1就得在不同的内存块上来回切换寻址,而case2则可以连续地访问内存块。访问连续的内存效率要高。尤其是三块大内存。
—-更新 2—
正如本贴评论中所说的,CPU的cache也是其中一个因素。大家对底层知识了解的都很不错啊。赞一个。
http://coolshell.cn/articles/4429.html/comment-page-1#comments
你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?
这道题一开始看上去好像是无解的,因为你的火车每一公里就要消耗一吨煤,而到目的地有1000公里,而火车最多只能装1000吨媒。如果你的火车可以全部装下,到目的地也会被全部烧光,一丁点也不剩。所以,很多人的第一反应都是觉得这个不太可能。
如果你一开始就觉得不太可能的话,这是很正常的。不过我不知道你还会不会继续思考下去,如果你不想思考下去了,那么我很为你担忧,因为你可能并不是一个不善于思考的人,而是一个畏难的人,还有可能是一个容易放弃的人。这对于你做好 一个需要大量思考的工作的程序员来说可能并不适合。
我一开始也觉得不可能,后来想了一想,想到一个解法可以最多运送500吨煤到市场,方法如下:
- 装1000吨煤,走250公里,扔下500吨煤,回矿山。
- 装1000吨煤,走到250公里处,拿起250吨煤继续向前到500公里处,扔下500吨煤,回矿山。此时火车上还有250吨,再加上在250公里处还有250吨煤,所以,火车是可以回矿山的。
- 装上最后1000吨煤,走到500公里处,装上那里的500吨煤,然后一直走到目的。
于是,你最多可以运送500吨煤到市场(当然,火车也回不去了,因为那矿山没有煤了)
火车运行时,最好让他满载,起始点记为A
第一步,分三次把煤运送到中间点B
第二步,分两次把煤运送到中间点C
第三步,把煤运送到目的地D
第一步:5*(AB) = 1000;解得AB=200
第二步:3*BC = 1000;解得BC=333.
第三步:AB+BC+CD=1000;解得CD=467
因此,做多运送533吨煤到目的地
http://coolshell.cn/articles/3738.html
打印质数的各种算法
http://coolshell.cn/articles/1202.html
赛马问题
http://coolshell.cn/articles/3345.html
140google面试题
http://coolshell.cn/articles/3445.html
输出1-1000的数
http://coolshell.cn/articles/2514.html
bool变量
库壳的一些有趣面试题相关推荐
- 2020年美容师(初级)证考试题库及美容师(初级)试题解析
题库来源:安全生产模拟考试一点通公众号小程序 2020年美容师(初级)证考试题库及美容师(初级)试题解析是由公众号安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业 ...
- 2020年低压电工证模拟考试题库及低压电工理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2020年低压电工证模拟考试题库及低压电工理论考试试题是由公众号安全生产模拟考试一点通提供,低压电工证模拟考试题库是根据低压电工最新版教材,低压电工大纲整 ...
- 2021年C证(安全员)考试题库及C证(安全员)免费试题
题库来源:安全生产模拟考试一点通公众号小程序 2021年C证(安全员)考试题库及C证(安全员)免费试题,包含C证(安全员)考试题库答案和解析及C证(安全员)免费试题练习.由安全生产模拟考试一点通公众号 ...
- 2021年电工(初级)考试题库及电工(初级)试题及答案
题库来源:安全生产模拟考试一点通公众号小程序 2021年电工(初级)考试题库及电工(初级)试题及答案,包含电工(初级)考试题库答案和解析及电工(初级)试题及答案练习.由安全生产模拟考试一点通公众号结合 ...
- 高等学校计算机一级考试题库,2017全国计算机一级考试试题库
2017全国计算机一级考试试题库 2017全国计算机一级考试试题库有哪一些?下面是CN人才小编收集整理的2017全国计算机一级考试试题库,欢迎阅读参考!~ 2017全国计算机一级考试试题库 单选题 1 ...
- 2020起重机械指挥考试题库及起重机械指挥考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2020起重机械指挥考试题库及起重机械指挥考试试题,包含起重机械指挥考试题库答案解析及起重机械指挥考试试题练习.由安全生产模拟考试一点通公众号结合国家起重 ...
- 2020年电工(高级)考试题库及电工(高级)试题及答案
题库来源:安全生产模拟考试一点通公众号小程序 2020年电工(高级)考试题库及电工(高级)试题及答案,包含电工(高级)考试题库答案和解析及电工(高级)试题及答案练习.由安全生产模拟考试一点通公众号结合 ...
- 2020年安全生产监管人员考试题库及安全生产监管人员新版试题
题库来源:安全生产模拟考试一点通公众号小程序 2020年安全生产监管人员考试题库及安全生产监管人员新版试题,包含安全生产监管人员考试题库答案和解析及安全生产监管人员新版试题练习.由安全生产模拟考试一点 ...
- 2020年化工自动化控制仪表考试题库及化工自动化控制仪表新版试题
题库来源:安全生产模拟考试一点通公众号小程序 2020年化工自动化控制仪表考试题库及化工自动化控制仪表新版试题,包含化工自动化控制仪表考试题库答案和解析及化工自动化控制仪表新版试题练习.由安全生产模拟 ...
最新文章
- 基于分布式的短文本命题实体识别之----人名识别(python实现)
- Kubernetes是什么
- phoenix的元数据一般存在哪里_Phoenix常用操作记录-阿里云开发者社区
- Selenium-三种等待方式
- Linux Sendfile的优势
- mysql as tmp,启动mysql时显示:/tmp/mysql.sock 不存在的解决办法
- uDevice Center - IoT弹性在线多设备开发平台
- python基础知识学习笔记(1)
- C# 整数转二进制字符串
- Spring Boot 学习之表单验证
- 程序员需要了解的硬核知识之操作系统和应用
- Atitit。如何实现dip, di ,ioc ,Service Locator的区别于联系
- Primer设计PCR引物的方法,在线引物设计网站汇总整理
- kali linux win10桌面,一键伪装成Win 10,Kali Linux 2019年最终版重磅功能预览
- 全国市场调查大赛经验分享(二)
- 深度系统安装移动硬盘启动_如何安装PE系统(移动硬盘) ?
- HTML学习日记-第二篇
- 原来手机还能当做扫描仪?安卓苹果都可以,纸质稿轻松电子化
- 微信小程序 购物车简单实例
- 奶茶新手加盟奶茶品牌培训哪些技能?