數(shù)據(jù)結(jié)構(gòu)和算法有緊密的聯(lián)系。
算法就是你是你解決問題的技巧和方式。
算法有五個特征:
輸入,輸出,有窮性,確定性,可行性。
輸入:指我們可以輸入?yún)?shù);
輸出:算法需要一定的結(jié)果或者返回值;
有窮性:不會出現(xiàn)死循環(huán),在特定的時間內(nèi)完成計(jì)算任務(wù);
確定性:算法的每一個步驟都有特定的含義,不會出現(xiàn)二義性;
可行性:算法的每一步都必須是可行的,同步有限的步數(shù)可以完成。
算法的要求:
算法程序沒有語法錯誤;
算法對于滿足條件的輸入能有合法的輸出;
算法程序?qū)τ诜欠ㄝ斎肽軌虍a(chǎn)生滿足規(guī)格的說明;
對于故意刁難的測試輸入能夠輸出合力的結(jié)果。
算法設(shè)計(jì)的要求:
1>可讀性:
算法的目的是為了閱讀,理解和交流;
代碼的目的一方面是為了j計(jì)算機(jī)執(zhí)行,另一方面是為了自己日后閱讀和他人閱讀;
2>健壯性;
當(dāng)輸入數(shù)據(jù)不合法時,算法能夠做出相應(yīng)的處理,而不會產(chǎn)生莫名其妙的結(jié)果,異常或崩潰;
3>時間效率高和存儲量低