算法設(shè)計(jì)的基本要求
關(guān)于算法有哪些基本設(shè)計(jì)要求呢? 正確性 算法的正確性是指算法至少應(yīng)該具有輸入、輸出和加工處理無(wú)歧義性,能正確反映問(wèn)題的需求,能夠得到問(wèn)題的正確答案。但是何為“正確”?在這里將“正確”分成了四個(gè)層次
關(guān)于算法有哪些基本設(shè)計(jì)要求呢?
正確性
算法的正確性是指算法至少應(yīng)該具有輸入、輸出和加工處理無(wú)歧義性,能正確反映問(wèn)題的需求,能夠得到問(wèn)題的正確答案。但是何為“正確”?在這里將“正確”分成了四個(gè)層次:
- 算法程序沒(méi)有語(yǔ)法錯(cuò)誤;
- 算法程序?qū)τ诤戏ǖ妮斎霐?shù)據(jù)能夠產(chǎn)生滿足要求的輸出結(jié)果;
- 算法程序?qū)τ诜欠ǖ妮斎霐?shù)據(jù)能夠得出滿足規(guī)格說(shuō)明的結(jié)果;
- 算法程序?qū)τ诰倪x擇的,甚至刁難的測(cè)試數(shù)據(jù)都有滿足要求的輸出結(jié)果。
算法的正確性在大多數(shù)情況下不能用程序來(lái)證明,而是用數(shù)學(xué)方法進(jìn)行證明的。一般情況下,我們把層次3作為一個(gè)算法是否正確的標(biāo)準(zhǔn)。
可讀性
算法設(shè)計(jì)的另一個(gè)目的是便于閱讀、理解和交流。
健壯性
當(dāng)輸入數(shù)據(jù)不合法時(shí),算法也能做出相關(guān)處理,而不是產(chǎn)生異?;蚰涿畹慕Y(jié)果。
時(shí)間效率高和存儲(chǔ)量低
時(shí)間效率指的是算法的執(zhí)行時(shí)間,對(duì)于同一個(gè)問(wèn)題,如果有多個(gè)算法能夠解決,執(zhí)行時(shí)間短的算法效率高,執(zhí)行時(shí)間長(zhǎng)的效率低。存儲(chǔ)量需求指的是算法在執(zhí)行過(guò)程中需要的最大存儲(chǔ)空間,主要指算法程序運(yùn)行時(shí)所占用的內(nèi)存或外部硬盤(pán)存儲(chǔ)空間。設(shè)計(jì)算法應(yīng)盡量滿足時(shí)間效率高和存儲(chǔ)量低的需求。
綜上
好的算法應(yīng)該具有正確性、可讀性、健壯性、時(shí)間效率高和存儲(chǔ)量低的特征。