演算法:對求解步驟的描述,是一組指令的有序序列,演算法必須是有窮的,可行的,並且要有輸入輸出
通常我們對演算法設計的要求有
正確性:應該滿足具體問題的需求。
健壯性:經得起測試
效率與低儲存量:演算法執行的時間要越短越好,占用的儲存空間應該越少越好
演算法效率的度量:
一般分為事後統計和事前分析估算
因為計算機的硬體,軟體環境等因素會常常掩蓋演算法本身的優劣,所以人們常常採用事前分析的方法
這樣拋開計算機硬體和軟體相關因素,乙個特定演算法的複雜度只依賴於問題的規模
乙個演算法是由控制結構(順序,分支,迴圈三種),和原操作構成,演算法的時間取決與兩者的綜合
一般情況下演算法重複次數是問題規模n的某個函式(f(n))
t(n) = o(f(n))
eg:for(i = 1; i <= n ; i++){
for(j = 1 ; j <= n ; j++){
c[i][j] = 0;
for(k = 1 ; k <= n ; k++){
c[i][j] += a[i][k] * b[k][j];
演算法複雜度:t(n) = o(n*n*n)
理想狀態下隨著n的增大演算法執行時間的增長率和f(n)的增長率相同,稱為演算法的漸近時間複雜度,簡稱時間複雜度
演算法所需要的儲存空間s(n) = o(f(n))稱為空間複雜度
1 2 演算法和演算法分析基礎
1.演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示乙個或多個操作 2.演算法有五個特性 有窮性 確定性 可行性 輸入 輸出 3.演算法設計的要求 正確性 可讀性 健壯性 效率與低儲存量需求 4.演算法的時間量度記作 t n o f n 他表示隨問題規模n的增大,演算法執...
演算法分析基礎
1.級數 a.算數級數 等差 1 2 3 4 n o n 2 末項的平方 b.冪數級數 1 a 2 a n a o n a 1 末項的冪數加一次方 c.幾何級數 a 0 a 1 a 2 a n o a n 末項 d.調和級數 1 1 1 2 1 3 1 n o logn log1 log2 log3...
演算法分析基礎
定義 如果存在正常數c與n0,使得當n n0時t n cf n 則記為 t n o f n 如果存在正常數c與n0,使得當n n0時t n cg n 則記為 t n omega g n 當且僅當t n o h n 且t n h n 時,則 t n theta h n 如果t n o p n 且t n...