(9~10)代碼調優、空間節省

一、代碼調優

     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、原理

    空間開銷、空間的“熱點”、空間度量、折中、與環境協作、使用適合任務的正確工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章