摘要:
本章主要讨论如何节省程序所占用的空间(包括数据空间和代码空间),用现在的观点来看,后面的一些做法有时为了节省空间确实有点“无所不用其极”.1.考虑这样一个矩阵存储的问题 假设有一个200*200的稀疏矩阵(总共40000个元素),大约只有2000个点是有值的,其余元素认为是0,怎样以最小的空间代价来存储该数组呢? 以下假设整数采用16位。 (1)使用普通的200*200的数组,就需要 40000*2 = 80KB的内存空间。 (2)使用一个数组表示给定的列,然后使用链表来表示给定列中的非0元素。 从上图中看出,第一列3个点,第二列2个点,第三列没有,....... 对于点(i,j)... 阅读全文
摘要:
第9章主要对已经写好的代码进行局部优化,这里已经不再涉及算法实现方面。1.首先是对一个C程序进行性能监视,来找到我们是在哪个函数或哪个部分花费了较多时间。 书上说的进行监视的代码实际上是“第13章,使用 箱结构进行搜索”的一个实现。具体代码如下: 1 /* Copyright (C) 1999 Lucent Technologies */ 2 /* From 'Programming Pearls' by Jon Bentley */ 3 4 /* genbins.c -- generate random numbers with bins */ 5 //这里去掉了bigran 阅读全文