一,概述
1)节省空间带来的好处
程序变小使得加载更快;更容易读入高速缓存;需要操作的数据减少从而减少操作时间。
2)节省空间的方法
数学函数式替代要存储的数据。简单例子为:a[i]=i 。如果你要读取数组第i个元素只需要通过函数f(i) = i得到元素值,而不需要将所有数据存储在数组中。
改变数据结构。如果一个数字范围为0-200,则完全没有必要采用32位的int型存储,只需要采用8位的无符号char型存储即可。
链表替代稀疏二维数组。虽然指针也需要空间存储,如果二维数组存储很少的数据,则可以考虑权衡一下是否要用链表代替稀疏二维数组。(数组表示列,链表表示行的方式。而不是单链表)
3)减少程序所需数据的存储空间的技术
1> 不存储,重新计算。
典型的时间换空间策略,假如判断质数:用函数判断是否为质数相对于查询质数表就是时间换空间的例子。
在网络传输时候,往往时间显得很重要。采用本地缓存的方式减少需要传输的数据量。
2> 稀疏数据结构。
使用指针共享大型对象,消除存储同一对象的众多副本的开销
其他方法,你懂得……嘿嘿
3> 数据压缩。
用8位的char替代 32位的int 。
利用函数将两个十进制数,放到一个字节里。加密:c= 10 * a + b; 解密:a= c / 10 ; b= c % 10;
注意 / 和 %运算符开销较大,即运行时占用内存较多。如果采用这种方法,相当于用较小的内存来换取存储字节的磁盘存储空间。
4> 分配策略。
动态分配替代静态分配。即只有在需要的时候才分配空间。
5> 垃圾回收。
4)代码空间技术
二,习题
6)加密:c= 10 * a + b; 解密:a= c / 10 ; b= c % 10;
更优化策略:
加密:c= a<<4 | b; 解密:a= c >> 4 ; b= c & 0xF;
解释下把:c为8个字节,一般只使用低位的四位。加密时将a提高到高四位。再与b异或,则b放到字节底四位。解密时,将底四位的b移走得到a 。将c跟低四位为1111的数相与得到b
10)原始声音文件(wav)采样率高占用存储空间大。在保证人耳听不出失真情况下,降低采样率,形成压缩MP3的声音格式文件。
原始图片文件(raw,bmp),无损压缩成gif格式。有损压缩成jpeg
原始视频文件(avi:音频视频交错(Audio Video Interleaved))。压缩成(3GP,mpg)
分享到:
相关推荐
《编程珠玑》是一本经典的计算机科学与编程书籍,作者是Jon Bentley。这本书以其独特的视角深入探讨了程序设计的艺术和技巧,旨在提升程序员的问题解决能力,优化算法,并提高代码效率。书中涵盖了一系列实用的编程...
《编程珠玑》一书将这些技巧和经验整理成章,涵盖了算法、数据结构、性能优化、代码质量等多个方面,是程序员自我提升的重要参考资料。书中强调的问题求解策略和程序设计思想,对于初学者和资深开发者都有很大的启发...
《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley 编著,它以其深入浅出的方式探讨了程序设计的问题和解决方案,尤其在数据结构、算法优化以及问题解决策略方面有着独到的见解。这本书的源代码是作者为了...
《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...
《编程珠玑》和其续篇是两部深受程序员喜爱的经典著作,主要涵盖了程序设计、算法分析和数据结构等核心编程领域。这两本书以其深入浅出的讲解方式和丰富的实例,帮助读者提升编程技巧和解决问题的能力。 在《编程...
根据提供的标题“编程珠玑(第二版)答案”和描述“编程珠玑(第二版)答案”,我们可以推测出这是关于《编程珠玑》这本书的相关解答资料。《编程珠玑》是一本经典的计算机科学书籍,作者为Jon Bentley。本书旨在...
编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本
《编程珠玑》是计算机科学领域的一本经典之作,作者是Jon Bentley,它以其独特的视角和深入浅出的讲解方式,向读者展示了编程艺术的精髓。这本书的第二版更是深受程序员和计算机科学家们的喜爱,因为它不仅涵盖了...
第1章 性能监视工具 3 1.1 计算素数 3 1.2 使用性能监视工具 7 1.3 一个专用的性能监视工具 8 1.4 开发性能监视工具 10 1.5 原理 11 1.6 习题 11 1.7 深入阅读 12 第2章 关联数组 13 2.1 Awk中的关联数组 13 2.2 有...
编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式
《编程珠玑》是一本享有盛誉的计算机科学与编程领域的经典著作,它以其深入浅出的讲解方式和丰富的实例,深受程序员和计算机科学爱好者的喜爱。这本书的主要内容围绕算法展开,旨在帮助读者掌握如何有效地解决编程...
《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...
编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...
《编程珠玑》是计算机科学领域的一本经典著作,作者是Jon Bentley。这本书以其深入浅出的讲解方式,探讨了程序设计中的一些核心问题,并提供了许多实用的编程技巧和算法,被誉为程序员的“智慧之石”。它不仅仅是一...
《编程珠玑》是计算机科学领域的一本经典著作,作者是Jon Bentley,它以其深入浅出的讲解方式,探讨了程序设计中的一些核心问题。这本书不仅涵盖了算法和数据结构,还涉及了问题解决、程序效率优化以及软件工程的...
"编程珠玑总结笔记" 本资源笔记总结了编程珠玑中的一些重要知识点,包括优化程序、埃氏筛法和位图法等。 1. 打印出小于 10000 的素数 优化程序是编程珠玑中的一大主题,如何优化程序来提高效率是一个非常重要的...
编程珠玑+续