现在的位置: 首页 > 综合 > 正文

(9~10)代码调优、空间节省

2018年04月01日 ⁄ 综合 ⁄ 共 595字 ⁄ 字号 评论关闭

一、代码调优

     1、问题1--整数取模

    一种算法是:

k = (j + rotdist)%n;

    另一种优化方法是:

k = j + rotdist;
if(k >= n)
    k -=n;

    2、问题2--函数、宏和内联代码

    通过宏替换函数来打破函数层次,提高算法效率。

    3、问题3--顺序搜索

    一种优化是设置哨兵值来测试是否已经到达数组末尾。另一种优化是每次循环展开8次来删除自增的运算,从而节省了开支。

    4、问题4--计算球面距离

    使用复杂的10个正弦和余弦函数的三角公式,计算量很大。所以,可先用一些三角函数将经度和纬度转换成x、y和z坐标,然后计算该点到集合S中每个点的距离,它到S中某点的距离为三个维度上差值的平方和。减少了计算量。

    5、原理

    效率的角色、度量工具、设计层面、双刃剑。

二、节省空间

    1、数据空间技术

    (1)不存储,通过计算来得到要搜索的值;

    (2)对于稀疏数据结构,可有效进行有效数据的存储;

    (3)数据压缩,例如将两个十进制数字a和b编码在一个字节中,该信息可通过以下两个语句进行编码:

    a = c / 10;

    b = c % 10;

    (4)分配策略,可进行空间预分配,然后在要用到空间时直接使用;

    (5)垃圾回收;

    (6)函数定义;

    (7)解释程序;

    (8)翻译成机器语言。

    2、原理

    空间开销、空间的“热点”、空间度量、折中、与环境协作、使用适合任务的正确工具。

【上篇】
【下篇】

抱歉!评论已关闭.