官术网_书友最值得收藏!

1.3.2 算法的描述

算法的描述方法很多,根據描述算法語言的不同,可將算法分為以下常用的4種:

(1)框圖描述法。該描述法在算法研究的早期非常流行。一個算法可以用流程圖的方式來描述,輸入/輸出、判斷、處理分別用不同的框圖表示,用箭頭表示流程的流向。它的優點是直觀、易懂,但用來描述比較復雜的算法就顯得不夠方便,也不夠清晰簡潔。目前在一些高級語言程序設計中仍然采用此種方法。

(2)非形式描述法。用自然語言,同時還使用一些程序設計語言中的語句來描述算法,稱為非形式描述法。這類描述方法自然、簡潔,但對于復雜算法的描述缺乏嚴謹性和結構性。

(3)類高級算法語言描述法。類高級算法語言描述法中常采用類C或C++的所謂偽語言。這種算法不能直接在計算機上運行,但專業設計人員經常使用這類偽語言來描述算法,它具有容易編寫、閱讀和格式統一的特點。

(4)高級算法語言描述法。這是可以在計算機上運行并獲得結果的算法描述,使給定的問題能在有限的時間內被計算機執行,通常這種算法也稱程序。

下面以求兩個整數m、n(m≥n)的最大公因子為例來說明不同的算法描述方法。該問題的框圖描述如圖1-4所示。

圖1-4 求兩個整數m、n的最大公因子框圖

該問題的非形式算法描述如下:

①(求余數)以n除m,并令r為余數(0≤r<n)。

②(余數是否為0)若r=0則結束算法,n就是最大公因子。

③(替換并返回a)若r≠0,則m←n,n←r,返回a。

采用C語言描述如下:

主站蜘蛛池模板: 德保县| 景德镇市| 枣阳市| 纳雍县| 亳州市| 金沙县| 达拉特旗| 张家界市| 丽江市| 夏河县| 巩义市| 富平县| 行唐县| 西城区| 尖扎县| 敦煌市| 两当县| 永登县| 元朗区| 噶尔县| 会理县| 中山市| 韶山市| 颍上县| 阳泉市| 萍乡市| 石城县| 武安市| 桂林市| 金湖县| 云林县| 安溪县| 玉门市| 安吉县| 交城县| 保山市| 富锦市| 宜良县| 阳谷县| 阜新| 东城区|