1.算法的基本特征:可行性、確定性、有窮性、擁有足夠的情報(bào)。
2.算法的基本要素:
(1)算法中對數(shù)據(jù)的運(yùn)算和操作
一個(gè)算法由兩種基本要素組成:一是對數(shù)據(jù)對象的運(yùn)算和操作;二是算法的控制結(jié)構(gòu)。
在一般的計(jì)算機(jī)系統(tǒng)中,基本的運(yùn)算和操作有以下4類:算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)系運(yùn)算和數(shù)據(jù)傳輸。
(2)算法的控制結(jié)構(gòu):算法中各操作之間的執(zhí)行順序稱為算法的控制結(jié)構(gòu)。
描述算法的工具通常有傳統(tǒng)流程圖、N-S結(jié)構(gòu)化流程圖、算法描述語言等。一個(gè)算法一般都可以用順序、選擇、循環(huán)3種基本控制結(jié)構(gòu)組合而成。
3.算法的時(shí)間復(fù)雜度
算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。
同一個(gè)算法用不同的語言實(shí)現(xiàn),或者用不同的編譯程序進(jìn)行編譯,或者在不同的計(jì)算機(jī)上運(yùn)行,效率均不同。這表明使用絕對的時(shí)間單位衡量算法的效率是不合適的。撇開這些與計(jì)算機(jī)硬件、軟件有關(guān)的因素,可以認(rèn)為一個(gè)特定算法運(yùn)行工作量的大小,只依賴于問題的規(guī)模(通常用整數(shù)n表示),它是問題規(guī)模的函數(shù)。即
算法的工作量=f(n)
4.算法的空間復(fù)雜度
算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實(shí)際問題中,為了減少算法所占的存儲(chǔ)空間,通常采用壓縮存儲(chǔ)技術(shù),以便盡量減少不必要的額外空間。
疑難解答:算法的工作量用什么來計(jì)算?
算法的工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來計(jì)算,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量=f(n),其中n是問題的規(guī)模。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |