程序
程序=數(shù)據(jù)機(jī)構(gòu)+算法
算法
- 算法是解一確定類問題的任意一種特殊的方法
- 算法是一組有窮的規(guī)則,它規(guī)定了解決某一特定類型
問題的一系列運算 - 算法包括數(shù)值計算和比較判斷
算法的基本特點
確定性、能行性、輸入、輸出、有窮性
- 確定性: 算法的每種運算必須要有確切的定義,不能有二
義性。 - 能行性:算法中有待實現(xiàn)的運算都是基本的運算,原理上
每種運算都能由人用紙和筆在有限的時間內(nèi)完成。 - 輸入:每個算法有0個或多個輸入。這些輸入是在算法開
始之前給出的量,取自于特定的對象集合——定
義域(或值域) - 輸出:一個算法產(chǎn)生一個或多個輸出,這些輸出是同輸
入有某種特定關(guān)系的量。 -
有窮性:一個算法總是在執(zhí)行了有窮步的運算之后終止
算法完成流程
算法復(fù)雜性分析
- 計算復(fù)雜性體現(xiàn)在算法占用機(jī)器空間資源和時間資源
的情況,是關(guān)于選定模型下輸入數(shù)據(jù)規(guī)模的函數(shù)。 - 能編制出能夠反映算法在最好、平均、最壞情況
下工作的數(shù)據(jù)配置。 - 事前分析:通過對算法執(zhí)行性能的理論分析,試圖得出關(guān)于
算法執(zhí)行特性的一種形式描述,以“理論上”衡
量算法的“好壞” - 事后分析:將算法編制成程序后實際放到計算機(jī)上運行,收
集其執(zhí)行時間和空間占用等統(tǒng)計資料,進(jìn)行分析
判斷
