算法
本条目 需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。 請按照校對指引,幫助编辑這個條目。(幫助、討論) 应对灯泡不亮的简单算法流程图 算法 ( algorithm ),在數學(算學)和電腦科學之中,為任何良定义的具體計算步驟的一个序列 [1] ,常用於計算、 數據處理 ( 英语 : Data processing ) 和自動推理。精確而言,算法是一個表示爲有限長 [2] 列表的 有效方法 ( 英语 : Effective method ) 。算法應包含清晰定義的指令 [3] 用於計算函數 [4] 。 算法中的指令描述的是一個計算,當其 執行 ( 英语 : Execution (computing) ) 時能從一個初始狀態和初始輸入(可能爲空)開始, [5] 經過一系列 有限 [6] 而清晰定義的狀態最終產生 輸出 [7] 並 停止 於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化算法在内的一些算法,包含了一些隨機輸入。 [8] [9] 形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,並在其后尝试定义 有效可計算性 ( 英语 : Effective calculability ) [10] 或者 有效方法 ( 英语 : Effective method ) [11] 中成形。这些尝试包括库尔特·哥德尔、雅克·埃尔布朗和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的遞歸函數,阿隆佐·邱奇於1936年提出的λ演算,1936年 埃米爾·萊昂·珀斯特 ( 英语 : Emil Leon Post ) 的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當前,依然常有直覺想法難以定義爲形式化算法的情況。 [12] 目录 1 历史 2 特征 3 基本要素 3.1 常用设计模式 3.2 常用实现方法 4 形式化算法 5 复杂度 5.1 时间复杂度 5.2 空间复杂度 6 非確定性多項式時間(NP) 7 实现 8 範例 8.1 求最大值演算法 8.2 求最大公約數演算法 9 分类 10 註釋 11 参考文献 12 参见 13 外部链接 历史 算法在中国古代文献中称为“术”,最早出现在《周髀算經》、《九章算术》。特别是《九章算术》,给出四则运算、最大公约数、最小公倍数、开平方根、