- Python數(shù)據(jù)結(jié)構(gòu)與算法(視頻教學(xué)版)
- 孫玉勝 陳銳 張志鋒
- 601字
- 2023-07-17 20:02:19
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)行。
- C/C++算法從菜鳥(niǎo)到達(dá)人
- Python應(yīng)用輕松入門(mén)
- 用Flutter極速構(gòu)建原生應(yīng)用
- ArcGIS By Example
- 名師講壇:Spring實(shí)戰(zhàn)開(kāi)發(fā)(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- Building RESTful Python Web Services
- Learning Unity 2D Game Development by Example
- Java圖像處理:基于OpenCV與JVM
- 奔跑吧 Linux內(nèi)核
- 大數(shù)據(jù)時(shí)代的企業(yè)升級(jí)之道(全3冊(cè))
- C語(yǔ)言程序設(shè)計(jì)
- Xamarin Cross-Platform Development Cookbook
- Getting Started with JUCE
- Hands-On ROS for Robotics Programming
- Office VBA開(kāi)發(fā)經(jīng)典:中級(jí)進(jìn)階卷