演算法 學習筆記

2021-09-12 08:21:51 字數 795 閱讀 4443

1. 輸入輸出

演算法至少有乙個或多個輸出

2. 有窮性

3. 確定性

4. 可行性

1. 正確性

a. 演算法程式沒有語法錯誤

b. 演算法程式對於合法的輸入資料能夠產生滿足要求的輸出結果

c. 演算法程式對於非法的輸入資料能夠得出滿足規格說明的結果

d. 演算法對於精心選擇的,甚至刁難的測試資料都有滿足要求的輸出結果

2.可讀性

3. 健壯性

當輸入資料不合法時,演算法也能做出相關處理

4. 時間效率高和儲存量

1. 事後統計方法

2. 事前分析估算方法

a. 函式的漸近增長

b. 演算法時間複雜度

a. 推導大o階方法

- 用常數1取代執行時間中的所有加法常數

- 在修改後的執行次數函式中,只保留最高端項

- 如果最高端存在且不是1,則去除與這個項數相乘的常數.

b. 常數階:o(1)

c. 線性階:o(n)

for(int i=0;i
d. 對數階:o(log n)
int count = 1;

for(count

e. 平方階:o(n²)
for(int i=0;i

演算法學習筆記

複雜度分析 1.只關注迴圈次數最多的一行 2.總複雜度等於量級最大 的複雜度 3.巢狀 的複雜度等於巢狀 內外複雜度的乘積 單鏈表結構和順序儲存結構的優缺點 儲存分配方式 時間效能 空間效能 單鏈表結構 用一組任意的儲存單元存放線性表元素 查詢 o n 插入和刪除 找到某位置的指標後,插入和刪除的時...

演算法學習筆記

影象分割是機器視覺後續處理的基礎,通過分割提取影象中的目標區域,方便後續進一步分析處理。分水嶺分割演算法 傳統的分水嶺演算法,是基於數學形態學的分割方法。其基本思想是,將2d影象視為3d地形 其中,畫素的座標 地形的位置,畫素的灰度 地形的高度 每乙個區域性極小值及其周圍區域稱為集水盆地,而集水盆地...

演算法學習筆記

1.比較容易理解的 氣泡排序 的寫法 c語言版 js版 2.快速排序 js版 3.使用 尾插法 和 頭插法 建立鍊錶 4.使用頭插法或者尾插法對單鏈表進行歸併 5.利用棧匹配括號的演算法 6.kmp演算法 7.二叉樹的遍歷演算法 8.二叉排序樹bst 查詢關鍵字的演算法 插入關鍵字的演算法 二叉排序...