1. 程式人生 > >《演算法導論》學習心得第一章——演算法在計算中的作用

《演算法導論》學習心得第一章——演算法在計算中的作用

閱讀本文大約需要 2 分鐘。
Hello~好久不見~上個學期的課程量比較大,將很多的計劃都擱置了,所以一直沒有更新公眾號,趁著相對輕鬆的寒假,我準備繼續之前的計劃,學習《演算法導論》,並且將學習的心得體會發在微信公眾號和CSDN部落格。
今天不討論理論的內容,只是對本系列文章更新進行規劃。由於我對於書中的部分內容進行過粗略學習,所以文章更新的頻率可能並不穩定,預計1~3天更新一次,春節期間可能會暫停。
我使用的是《演算法導論》原書第三版(機械工業出版社),也就是封面的那本,在部落格原文中可能會對原文進行引用,在此先進行版權宣告。
演算法是一種解決計算問題的工具,它在我們日常生活中無處不在,大部分領域都會或多或少的使用了演算法思想,例如生物領域對DNA序列的分析,網際網路訪問時選擇最近的路由,物流企業在運輸過程中選擇效益高的路線,乃至於計算機繪圖的生成,這些都涉及到演算法。
既然是解決問題的工具,那麼就涉及到執行的效率和所得解的優劣,效率我們很容易理解,那麼解的優劣是怎麼產生的呢?我們在解決問題時,某些問題存在固定解,例如排序問題;而有些問題則不存在固定解,我們試圖從多個解法中尋求一個最佳解法,例如從A地到B地的路徑可能存在多條,我們試圖尋找出一條最短路徑或者時間消耗最少的路徑,那麼它們就是這個問題的最佳解法。其中有一些有趣的問題,目前來講並不存在一種有效的解法,只能得出“某些假設條件下”的最優解,這類問題稱為NP完全問題,這些問題在生活中也很常見,在書的第34章會進行詳細的探討。
在研究演算法中涉及到一些資料結構和基礎數學知識,當使用到的時候會在附加內容中進行介紹,程式碼類文字將會發布在CSDN上,並提供相應的原文連結。