1. 程式人生 > >資料結構與演算法(1) 淺談演算法

資料結構與演算法(1) 淺談演算法

演算法的概念:演算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。
演算法的特性:輸入,輸出,有窮性,確定性,可行性
演算法設計要求:正確性,可讀性,健壯性,時間效率高,儲存量低
演算法效率:1)演算法的好壞,2)硬體效能
時間複雜度:在計算演算法分析時,語句總的執行次數T(n)是關於問題規模n的函式,進而分析T(n)隨n的變化情況並確定T(n)的數量級。記作T(n)=O(f(n))。表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸進時間複雜度。一般T(1 )為最優,一般有O(1),O(n),O(n^2),常數階,線性階,平方階,對數階,nlogn階,立方階,指數階。
在這裡插入圖片描述


O(1)<O(logn)<O(n)<O(nlogn)<O(n^ 2)<O(n^3)<O(2 ^n)<O(n!)<O(n ^n)
空間複雜度:計算演算法所需的儲存空間實現,演算法的空間複雜度的計算公式記作:S(n)=O(f(n)),其中,n為問題的規模,f(n)為語句關於n所佔儲存空間的函式。