1. 輸入輸出
演算法至少有乙個或多個輸出2. 有窮性
3. 確定性
4. 可行性
1. 正確性
a. 演算法程式沒有語法錯誤2.可讀性b. 演算法程式對於合法的輸入資料能夠產生滿足要求的輸出結果
c. 演算法程式對於非法的輸入資料能夠得出滿足規格說明的結果
d. 演算法對於精心選擇的,甚至刁難的測試資料都有滿足要求的輸出結果
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 查詢關鍵字的演算法 插入關鍵字的演算法 二叉排序...