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

1.5.4 算法的描述

算法的描述方式有多種,如自然語(yǔ)言、偽代碼(或稱為類語(yǔ)言)、程序流程圖及程序設(shè)計(jì)語(yǔ)言(如Python、C、Java、C++)等。其中,自然語(yǔ)言描述可以是漢語(yǔ)或英語(yǔ)等文字描述;偽代碼形式類似于程序設(shè)計(jì)語(yǔ)言形式,但是不能直接運(yùn)行;程序流程圖的優(yōu)點(diǎn)是直觀,但是不易直接轉(zhuǎn)化為可運(yùn)行的程序;采用程序設(shè)計(jì)語(yǔ)言描述算法,就是直接利用像Python、C、C++、Java等語(yǔ)言來(lái)表述,優(yōu)點(diǎn)是可以直接在計(jì)算機(jī)上運(yùn)行。

例如,判斷正整數(shù)m是否為質(zhì)數(shù),算法可用以下幾種方式描述。

1.自然語(yǔ)言描述法

利用自然語(yǔ)言描述“判斷m是否為質(zhì)數(shù)”的算法如下:

①輸入正整數(shù)m,令i=2。

②如果,則令m對(duì)i求余,將余數(shù)送入中間變量r;否則輸出“m是質(zhì)數(shù)”,算法結(jié)束。

③判斷r是否為零。如果為零,輸出“m不是質(zhì)數(shù)”,算法結(jié)束;如果r不為零,則令i增加1,轉(zhuǎn)到步驟②執(zhí)行。

2.程序流程圖法

圖1.11 判斷m是否為質(zhì)數(shù)的程序流程圖

判斷m是否為質(zhì)數(shù)的程序流程圖如圖1.11所示。不難看出,采用自然語(yǔ)言描述算法直觀性和可讀性不強(qiáng);采用程序流程圖描述算法比較直觀,可讀性好,缺點(diǎn)是不能直接轉(zhuǎn)化為計(jì)算機(jī)程序,移植性不好。

3.類語(yǔ)言法

類C語(yǔ)言描述如下:

4.程序設(shè)計(jì)語(yǔ)言法

C語(yǔ)言描述如下:

Python語(yǔ)言描述如下:

可以看出,類語(yǔ)言的描述除了沒(méi)有變量的定義,輸入和輸出的寫(xiě)法之外,與程序設(shè)計(jì)語(yǔ)言的描述的差別不大,類語(yǔ)言的描述可以直接轉(zhuǎn)化為可以直接運(yùn)行的計(jì)算機(jī)程序。

本書(shū)所有算法均采用Python語(yǔ)言描述,所有程序均可直接上機(jī)運(yùn)行。

主站蜘蛛池模板: 龙口市| 乌苏市| 邳州市| 珲春市| 溆浦县| 淮南市| 玉山县| 西和县| 玛沁县| 屯门区| 凤冈县| 石屏县| 东乌| 县级市| 兰溪市| 申扎县| 闽清县| 平昌县| 五河县| 虞城县| 蕲春县| 股票| 东光县| 柳林县| 万载县| 洛浦县| 台南市| 丰台区| 武陟县| 乡宁县| 徐水县| 夏河县| 三亚市| 蓝山县| 舒城县| 南郑县| 连平县| 陆河县| 龙州县| 合肥市| 玉山县|