- Python算法設計與分析從入門到精通
- 明日科技編著
- 1263字
- 2022-07-28 18:54:28
2.4 用代碼實現算法
前面介紹了自然語言、流程圖、N-S圖3種算法描述方法。這些都是依據人類大腦形成的算法,可以清楚描述問題的解決方法和步驟,但卻無法被計算機所識別。要想讓計算機識別人類的算法,就需要使用能與計算機溝通的語言,即編程語言來實現。本節就來介紹如何用編程語言讓計算機執行人類的算法。
2.4.1 用偽代碼實現算法
偽代碼是由自然語言和編程語言組成的混合結構,它比自然語言更精確,算法描述更簡潔,同時也很容易被轉換成計算機程序。偽代碼必須結構清晰,代碼簡單,可讀性好。
【實例2.9】 根據天氣溫度提示增減衣物。
如今的天氣預報非常智能,會根據溫度提示市民增減衣物。例如,25℃以上,會提示大家穿短袖;15℃~24℃,會提示大家穿長袖或外套;5℃~15℃,會提示大家穿厚外套;5℃以下,會提示大家穿羽絨外套。用基于Python的偽代碼描述此實例的算法設計。

上述偽代碼中,有一部分是自然語言,有一部分是編程語言(如if、elif、else等語句)。其編程語言部分能被計算機識別,但自然語言部分無法被計算機所識別。偽代碼提供了很多算法設計信息,按照其設計步驟,將自然語言部分轉化成編程語言,就可以快速地形成解決本例問題的一段程序。
2.4.2 用編程語言實現算法
目前TIOBE編程語言排行榜的前5名是C、Java、Python、C++和C#,接下來我們試著用這5種編程語言分別實現實例2.9中的偽代碼。
【實例2.10】 根據天氣溫度提示增減衣物(C版)。
具體代碼如下:

【實例2.11】 根據天氣溫度提示增減衣物(Java版)。
具體代碼如下:

【實例2.12】 根據天氣溫度提示增減衣物(Python版)。
具體代碼如下:

【實例2.13】 根據天氣溫度提示增減衣物(C++版)。
具體代碼如下:

【實例2.14】 根據天氣溫度提示增減衣物(C#版)。
具體代碼如下:

以上5個版本的代碼運行結果一模一樣,如圖2.33所示。

圖2.33 運行結果
2.4.3 選擇一門編程語言
通過前面的例子可發現,用5種編程語言實現的算法都能被計算機所識別。那么,在實際編程中又該選擇哪種編程語言呢?事實上,C、Java、Python、C++、C#有著各自擅長的方向,語言本身沒有高下之分,只有應用場景之分。
C語言是基礎,C++、Java、C#都是基于C語言演化而來的,基本語法很接近。Python是腳本語言,有著另外一種語法模式。
C語言是面向過程的,適合開發底層程序和嵌入式程序,不適合開發復雜的程序;C++、C#、Java、Python是面向對象的,更適合開發應用層程序。
C++執行效率高,適合開發需要較高運行效率的計算密集型軟件,如大型游戲、游戲服務器、數據庫服務器、圖形圖像處理器、音/視頻解碼器等。
Java和C#的功能都很強大,是目前開發企業級項目的主流語言。Java在程序語言排行中常年位于第一,擁有廣闊的開發人群。C#由微軟發布,IDE功能強大,是開發Windows應用程序的不二選擇。
Python作為后起之秀,語法簡單,類庫豐富,在網絡爬蟲、數據分析、人工智能等方面具有很大的優勢。
再次強調,語言沒有高下之分,只要是適合應用場景(即滿足業務需求)的語言,就是最好的編程語言。本書中,因為Python語法簡單,上手快,應用面又廣,所以本書選擇Python語言來實現各個算法。
說明
本書主要以算法為核心,不對Python開發環境下載與安裝進行講解,讀者可以自行下載和安裝Python開發環境。
- Visual C++串口通信技術詳解(第2版)
- Java Web應用開發技術與案例教程(第2版)
- 游戲程序設計教程
- Apache Karaf Cookbook
- Nexus規模化Scrum框架
- Hands-On Functional Programming with TypeScript
- Microsoft Azure Storage Essentials
- Android玩家必備
- Python 3.7從入門到精通(視頻教學版)
- Orleans:構建高性能分布式Actor服務
- App Inventor 2 Essentials
- XML程序設計(第二版)
- JavaWeb從入門到精通(視頻實戰版)
- Java Web程序開發參考手冊
- 深度剖析ApacheDubbo核心技術內幕