1、算法的概念
算法是問題求解過程中的精確描述,它為解決某一特定類型的問題規定了一個運算過程。
2、算法的特點
2.1 有窮性
一個算法必須在有窮的步驟結束后結束,并且每一步都在有窮時間內完成。
2.2 確定性
算法的執行過程中每一步都要有確定的定義,不能存在歧義。
2.3 可行性
算法應該是可以實現的,就是在有窮的步驟實現想要的結果。
2.4 輸入
算法可以有零個或者多個輸入,它作為初始數據為實現算法的結果提供初始量或被加工的數據對象。
2.5 輸出
一個算法有一個或者多個輸出,它們是與輸入有特定關系的量。
3、優秀算法的特點
正確性、可讀性、健壯性、效率高占用資源少。
4、算法描述的方式
4.1 流程圖(Flow Chat)
流程圖是最古老、流行最廣泛的一種算法的圖形表示法。每個算法都可由若干張流程圖表示。流程圖給出了算法中所進行的操作以及執行這些操作的邏輯順序。
流程圖的基本符號
? ? ? ?? ? ? ?
求最大公約數
? ? ? ?? ? ? ?
4.2 N/S 盒圖
盒圖是支持結構化程序設計產生的一種描述工具。分為順序結構、選擇結構、多選擇結構 、while-do 循環結構、repeat-until循環結構,調用結構。
? ? ? ?? ? ? ?
4.3 偽代碼
用偽代碼描述算法的特點是借助程序語言的語法結構 和自然語言描述,使算法具有良好的結構而又不拘泥于程序語言的限制。這樣的算法易讀易寫,容易轉換為程序。
4.4 決策表
決策表是一種圖形表格,它可以將比較復雜的決策問題,簡潔明了的方式呈現出來。如圖:
? ? ? ??? ? ?
5 、算法效率
算法效率是決定一個算法優劣的非常重要的一點,任何算法在計算機上執行都會消耗時間和存儲空間資源。消耗時間和存儲空間資源分別用時間復雜度和空間復雜度來體現。
語句頻度:是指算法語句被重復執行的次數。
算法的執行時間:算法中各個基本語句的語句頻度之和。
例如:語句頻度為 1、n、n^2 時間復雜度分別為O(1) 常量階、O(n) 線性階、O(n^2) 平方階。若三個是一個整體,算法的時間復雜度為?O(n^2)。
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識