複製鏈接
請複製以下鏈接發送給好友

算法描述

鎖定
算法描述(Algorithm Description )是指對設計出的算法,用一種方式進行詳細的描述,以便與人交流。算法可採用多種描述語言來描述,各種描述語言在對問題的描述能力方面存在一定的差異,可以使用自然語言、偽代碼,也可使用程序流程圖,但描述的結果必須滿足算法的五個特徵。
中文名
算法描述
外文名
Algorithm Description
涉及學科
信息科學
描述語言
自然語言、偽代碼等
目    的
以便與人交流
對    象
對設計出的算法

算法描述簡介

算法可採用多種描述語言來描述,例如,自然語言、計算機語言或某些偽語言。各種描述語言在對問題的描述能力方面存在一定的差異。例如,自然語言較為靈活,但不夠嚴謹。而計算機語言雖然嚴謹,但由於語法方面的限制,使得靈活性不足。因此,許多教材中採用的是以一種計算機語言為基礎,適當添加某些功能或放寬某些限制而得到的一種類語言。這些類語言既具有計算機語言的嚴謹性,又具有靈活性,同時也容易上機實現,因而被廣泛接受。目前,許多“數據結構”教材採用類PASCAL語言、類C++或類C語言作為算法描述語言。 [1] 

算法描述算法的特徵

  1. 輸入:一個算法必須有零個或以上輸入量。 [1] 
  2. 輸出:一個算法應有一個或以上輸出量,輸出量是算法計算的結果。
  3. 明確性:算法的描述必須無歧義,以保證算法的實際執行結果是精確地符合要求或期望,通常要求實際運行結果是確定的。
  4. 有限性:依據圖靈的定義,一個算法是能夠被任何圖靈完備系統模擬的一串運算,而圖靈機器只有有限個狀態、有限個輸入符號和有限個轉移函數(指令)。而一些定義更規定算法必須在有限個步驟內完成任務。
  5. 有效性:又稱可行性。能夠實現,算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現。

算法描述功能

輸入和輸出語句
(1)輸入:cin>>X; [1] 
其功能是讀入從鍵盤輸入的一個數,並賦給相同類型的變量X。其中變量X的類型可以是整型浮點型、字符型等不同類型。
該語句可用下面的形式同時輸入多個不同類型的變量
cin>>x1>>x2>>x3>>x4>>x5;
(2)輸出:cout<<exp;
其功能是將表達式exp的值輸出到屏幕上。其中表達式exp的類型可以是整型、浮點型、字符型等不同類型。
該語句可用下面的形式同時輸出多個不同類型的表達式的值。
cout<<exp1<<exp2<<exp3<<exp4<<exp5;
最小值和最大值函數min和max
(1)最小值函數:datatype min(datatype expl,datatype exp2,…,datatype expn);
返回表達式expi(i=1,2,…,n)中的最小的值。其中元素類型datatype可以是各種類型。
(2)最大值函數:datatype max(datatype expl,datatype exp2,…,dalatype expn);
返回表達式expi(i=1,2,…,n)中的最大的值。
交換變量的值
x1<= =>x2;交換變量x1和x2的值。
註釋
在雙斜線“//”後面的內容就是註釋的內容。例如,下面語句的右面就是一個註釋。
A[i]=i*i; //此處為註釋內容
程序錯誤輸出提示
error(”exp”);

算法描述語句形式

算法描述語法形式

算法描述語言的語法不是十分嚴格,它主要由符號與表達式賦值語句、控制轉移語句、循環語句、其他語句構成。符號命名、數學及邏輯表達式一般與程序書寫一致。賦值用箭頭表示。語句可有標識,標識可以是數字,也可以是具有實際意義的單詞。例如,循環累加可表示為:
loop:n=n+1;

算法描述控制轉移語句

無條件轉移語句用“GOTO語句標識”表示。條件轉移語句用“IF C THEN S1 ELSE S2”表示,其中C、S1和s2可以是一個邏輯表達式,也可以是用“{”與“}”括起來的語句組。如果C為“真”,則S1被執行;如果C為“假”,則執行S2。

算法描述循環語句

循環語句有兩種形式:WHILE語句的形式為“WHILE C DO S”,其中C和S意義同上。如果C為“真”,則執行S,且在每次執行S之後都要重新檢查C;如果C為“假”,控制就轉到緊跟在WHILE後面的語句。FOR語句的形式為“FOR i=init TO limit BY step DO S”,其中i是循環控制變量,init、limit和step都是算術表達式,而S意義同上。每當S被執行一次時,i從初值加步長,直到i>limit為止。

算法描述其他語句

在算法描述中,還可能要用到其他一些語句,因為它們都是用最簡明的形式給出的,故很容易知道它們的含義。例如,EXIT語句、RETURN語句、READ(或INPUT)語句和OUTPUT(或PRINT、或WRITE)語句等。 [2] 
參考資料
  • 1.    胡學鋼總主編;胡學鋼,張先宜主編;史君華,強俊,黃曉梅,姜飛,陳景霞,韓鳳英副主編 .數據結構:安徽大學出版社 ,2015.02,6-7
  • 2.    許晶華主編;張藝全,李志宏,闕師鵬副主編 .管理信息系統:華南理工大學出版社 ,2006.07,第181頁