1. 程式人生 > >嚴蔚敏老師版《資料結構》筆記之演算法

嚴蔚敏老師版《資料結構》筆記之演算法

1. 什麼是演算法?

是對特定問題求解的步驟

 

2. 演算法的5個重要特性:

有窮性、確定性(讀者閱讀時不會產生二義性)、可行性、輸入(至少0個)、輸出(至少1個)

 

3. 演算法設計的要求:

正確性(程式碼無誤、幾組輸入能夠得到滿足要求的結果、對典型、苛刻而帶有刁難性的資料能夠得出滿足要求的結果、一切合法輸入都能得到滿足要求的結果)、可讀性、健壯性(輸入非法資料作出適當反應)、效率與低儲存量需求(通常效率指執行時間,可使用事後統計和事前估計來得到效率)

 

4. 演算法的時間複雜度:

時間複雜度常用大O符號

表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。(摘自百度百科《時間複雜度》)

O的形式定義為:若f(n)是正整數n的一個函式,則xn=O(f(n))表示存在一個正的常數M,使得當n大於等於nc時,都滿足|xn|<=M|f(n)。

 

5. 演算法的空間複雜度: