1.算法分析
1)算法概念
? ?>算法是對特定問題求解步驟的一種描述蚕礼,是一有限長的操作序列
2)算法特性
? >有窮性:算法在執(zhí)行有窮步后能結(jié)束
? >確定性:每步定義都是確定嗡午、無歧義的
? >可行性:每一條運算應(yīng)足夠基本(已驗算正確)
? >輸入:有0或者多個輸入
? >輸出:有1或者多個輸出
3)算法例子
? >例子:選擇排序
? >問題:遞增排序
? >解決方案:逐個選擇最小的數(shù)據(jù)
? >算法框架:
? ? for (int i=0;i<n-1;i++){
? ? ? ? ? ? ?從a[i]檢查到a[n-1]僻他,找到最小數(shù);
? ? ? ? ? ? ? ? 若最小數(shù)在a[k],交換a[i]與a[k];
? ? ? ? ?}
4)算法設(shè)計的要求
?>正確性:滿足具體問題的需求
?>可讀性:便于理解和修改
?>健壯性:當輸入數(shù)據(jù)非法時,也能適當反應(yīng)
?>?效率性:執(zhí)行時間短
?>空間省:執(zhí)行中需要的最大存儲空間
5)衡量算法標準
?>時間復(fù)雜度
? ?>衡量算法效率蓬戚,主要根據(jù)算法執(zhí)行所需要的時間,即時間復(fù)雜度
? ? ? ?事后統(tǒng)計法:計算算法開始時間與完成時間差值
? ? ? ?事前統(tǒng)計法:依據(jù)算法選用何種策略及問題的規(guī)模n,是常用的方法
?>空間復(fù)雜度
? >空間復(fù)雜度指算法執(zhí)行時,所需要存儲空間的量度。