- C語言程序設計
- 徐鳳生 黃超 謝玉華編著
- 578字
- 2019-10-12 15:48:41
1.2.2 算法的特征
具體地說,算法就是對特定問題求解步驟的一種描述,是指令的有限序列。其中,每個指令表示一個或多個操作。
一個算法必須滿足以下5個重要特性:
(1)有窮性。對于任意一組合法輸入值,在執行有窮步驟之后一定能結束,即算法中的每個步驟都能在有限時間內完成。
(2)確定性。對于每種情況下所應執行的操作,在算法中都有確切的規定,使算法的執行者或閱讀者都能明確其含義及如何執行。并且,在任何條件下,算法都只有一條執行路徑。
(3)可行性。算法中的所有操作都必須足夠基本,都可以通過已經實現的基本操作運算有限次實現之。
(4)有輸入。作為算法加工對象的量值,通常體現為算法中的一組變量。有些輸入量需要在算法執行過程中輸入,而有的算法表面上可以沒有輸入,實際上已被嵌入算法之中。
(5)有輸出。它是一組與“輸入”有確定關系的量值,是算法進行信息加工后得到的結果,這種確定關系即為算法的功能。
算法與程序是兩個不同的概念,兩者之間既有聯系又有區別。一個程序不一定滿足有窮性。例如,操作系統,只要整個系統不被破壞,它就永遠不會停止。即使沒有作業需要處理,它仍處于動態等待中。因此,操作系統不是一個算法。另一方面,程序中的指令必須是機器可執行的,而算法中的指令則無此限制。算法代表了對問題的解,而程序則是算法在計算機上的特定的實現。一個算法若用程序設計語言來描述,則它就是一個程序。
推薦閱讀
- Oracle 12c中文版數據庫管理、應用與開發實踐教程 (清華電腦學堂)
- Instant Typeahead.js
- ANSYS Fluent 二次開發指南
- Mastering Android Game Development
- Node.js 12實戰
- C指針原理揭秘:基于底層實現機制
- Node.js區塊鏈開發
- Learning Ionic(Second Edition)
- Python面向對象編程(第4版)
- 計算機常用算法與程序設計教程(第2版)
- Learning Puppet
- Azure for Architects
- 微信公眾平臺服務號開發:揭秘九大高級接口
- 威脅建模:設計和交付更安全的軟件
- Unreal Engine 4 Game Development Essentials