数据结构和算法 —— 谈谈算法
什么是算法?
算法是解決特定問題求解步驟的描述,在計算機中表現(xiàn)為指令的有限序列,并且每條指令表示一個或多個操作。
算法的五個基本特征
輸入
算法具有零個或多個輸入。
盡管對于絕大多數(shù)算法來說,輸入?yún)?shù)都是必要的
輸出
算法至少有一個或多個輸出。
算法是一定要輸出的,輸出的形式可以是打印形式輸出,也可以是返回一個值或多個值等。
有窮性
指算法在執(zhí)行有限的步驟之后,自動結(jié)束而不會出現(xiàn)無限循環(huán),并且每一個步驟在可接受的時間內(nèi)完成。
確定性
算法的每一個步驟都具有確定的含義,不會出現(xiàn)二義性。
算法在一定條件下,只有一條執(zhí)行路徑,相同的輸入只能有唯一的輸出結(jié)果。
算法的每個步驟都應(yīng)該被精確定義而無歧義。
可行性
算法的每一步都必須是可行的,也就是說,每一步都能夠通過執(zhí)行有限次數(shù)完成。
算法設(shè)計的要求
正確性
算法的正確性是指算法至少應(yīng)該具有輸入、輸出和加工處理無歧義性、能正確反映問題的需求、能夠得到問題的正確答案。
大體分為以下四個層次:
算法程序沒有語法錯誤。
算法程序?qū)τ诤戏ㄝ斎肽軌虍a(chǎn)生滿足要求的輸出。
算法程序?qū)τ诜欠ㄝ斎肽軌虍a(chǎn)生滿足規(guī)格的說明。
算法程序?qū)τ诠室獾箅y的測試輸入都有滿足要求的輸出結(jié)果。
可讀性
算法設(shè)計另一目的是為了便于閱讀、理解和交流。
寫代碼的目的,一方面是為了讓計算機執(zhí)行,但還有一個重要的目的是為了便于他人閱讀和自己日后閱讀修改。
健壯性
當輸入數(shù)據(jù)不合法時,算法也能做出相關(guān)處理,而不是產(chǎn)生異常、崩潰或莫名其妙的結(jié)果。
時間效率高和存儲量低
總結(jié)
以上是生活随笔為你收集整理的数据结构和算法 —— 谈谈算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构和算法 —— 绪论
- 下一篇: 2018第九届蓝桥杯C/C++ B国赛