3.4 浮點計算
由於書中的某些演算法需要使用到數值計算,因此這裡需要簡單講述一下現代計算機在數值計算中的作用以及某些先天不足。眾所周知,計算機是對儲存在cpu暫存器的值進行一些基本運算。隨著計算機架構從20 世紀70 年代流行的8位intel處理器演進到如今廣泛存在的64位架構(如intel的itanium以及sun的sparc處理器),暫存器的大小也隨之發生了翻天覆地的變化。cpu通常支援對儲存在暫存器的整數進行一些基本的運算,例如add、mult、divide和sub。浮點計算則交給了浮點運算單元(fpu)按照ieee 關於二進位制浮點算術的標準(ieee 754)來高效處理。
整數(如布林型、8位短整型以及16位或者32位整數)運算通常是處理器的強項。所以一般都需要考慮浮點和整數運算的效能差異來優化程式。不過,相對於整數運算,現代cpu已經在浮點運算上做了大量的改進和優化,即便如此,當需要使用浮點計算時,開發人員還是需要注意這些問題(goldberg,1991)。
《演算法技術手冊》一導讀
1.1 理解問題 1.2 簡單解法 1.3 高明做法 1.3.1 貪心演算法 1.3.2 分治演算法 1.3.3 並行演算法 1.3.4 近似演算法 1.3.5 融會貫通 1.4 總結 1.5 參考文獻 第2章 演算法的數學原理 2.1 問題樣本的規模 2.2 函式的增長率 2.3 最好 最壞和平均...
《演算法技術手冊》一1 3 1 貪心演算法
1.3.1 貪心演算法 以下的貪心演算法展示了如何找到凸包上的每個點 刪除p中的最低點low low必須在凸包上。垂直畫一條穿過點low的直線,將剩餘的n 1個點分別和點low連線,以垂直直線右側的點的夾角為正值降序排列,夾角的範圍是從90皛 90啊 n 2是最右側的點,而p0是最左側的點。圖1 3...
《演算法技術手冊》一1 1 理解問題
用演算法的眼光去看問題 演算法真的是非常重要!演算法的選擇會對軟體的效能產生巨大影響。本書將指導你學習一系列的演算法,例如搜尋和排序,還會介紹一些演算法經常採用的策略,例如分治或貪心。希望從此之後,你能夠靈活運用這些演算法來改善軟體的效能。自 計算 出現之後,資料結構便一直與演算法緊密相關。本書將介...