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