Programming Pearls(编程珠玑)读书笔记之COLUMN 6:Perspective on Performance

接下来三个专栏都是围绕如何提升性能来讲的。

这个专栏讲了几个方面:系统结构(System Structure),算法和数据结构(Algorithms and Data Structures),代码调优(Code Tuning),系统软件(System Software),硬件(Hardware)。并给出了一个建议:如果只想加速一点,在最佳的层次优化;如果想要很大的性能优化,那就从很多个层次入手。(If you need a little speedup, work at the best level. If you need a big speedup, work at many levels.)

基本上这次专栏就讲了这么多。


由于这次专栏没什么好写的,我就放几道最近看到的一些好玩有趣的面试题目在后面吧:

1. 有三个盒子,这三个盒子里各装有八角糖,薄荷糖,和混合的糖。遗憾的是标签全部都错了。请问至少要拿出几颗糖才能确定三个盒子里各装的是什么 ?

2.在一个密封的房间,有一个灯泡,门外有三个开关,只有一个开关是有效的。当门关上时,你可以随意开关,当门开启时,你必须判断哪个开关是有效的,如何判断?

3. 妈妈比儿子大21岁,再过六年他会比妈妈年轻五倍,问这时候爸爸在干什么?

4.有8颗小石头和一架托盘天平。有7颗石头的重量是一样的,另外一颗比其他石头略重;除此之外,这些石头完全没有分别。你不得假设那颗重头到底比其他的石头重了多少。请问:最少要称量几次,你才能把那颗较重的石头找出来?

5.现有100把锁是开着没锁上的,1,把2的倍数的锁switch。2,把3的倍数的锁switch。3,以此类推,到100时,有多少把锁是开着的?(注:switch表示开与关状态的互换,即把开着锁上,锁上的锁打开)

进一步问:若有K把锁,进行K次这样的操作,有多少锁是打开的?(由此可见,此问题是有很巧妙地解法的!)

答案我自己都清楚了,就不写上来了。

全文完。EOF

/* 原创文章,本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: Swarm’s Blog*/

Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]


无觅相关文章插件,快速提升流量