编程珠玑学习笔记二 第一章总结

第一章比较好的问题总结如下:

1.如何生成位于0到n-1之间的k个不同的随机顺序的随机整数?

这在前一篇文章中已经给出了解答

2.若代码需要1.25MB的空间,而系统只能提供1MB的空间,该如何处理?

思路:此时可分别两次读入数据来处理。

3.每个整数不只出现一次,而是最多出现10次,如何处理?

思路:前面的问题每个数字只出现一次,所以选择用一个bit位来表示这个数字是否出现;

        而现在最多出现10次,就不能用一位来表示了,至少需要4bit来表示这个数字出现了

        多少次。所以位图的长度也就扩大了四倍。此时若对内存大小有严格限制,则可以

        多次读入数据来解决问题

4.免费电话区号不只是800,还包括877,888.如何在1MB空间内完成对所有这些免费电话号码

的排序?

  书上说用关键字做索引,暂时没有什么思路。。。

5.以更多的空间来换取更少的运行时间。

网上搜了一下答案,可参考:

http://blog.csdn.net/cattylll/article/details/7056898

6.如何组织商店的数据库,以允许高效的插入和检索操作

思路:用电话号码的最后两位来做hash将订单分类,用顺序遍历的方式来检测冲突。

注:由于电话号码前几位一般相似度很高,故不必将其列入索引值

posted on 2012-07-31 16:38  温柔的暴力  阅读(576)  评论(0编辑  收藏  举报

导航