石油大學資料結構30講
抽象資料型別 ADT
資料模型 + 一組操作(資料結構 + 一組操作)
資料結構包含兩個內容 D + S
資料型別的實作
一個問題抽象成一個抽象資料型別后,僅僅是形式上的抽象定義,并沒有達到解決問題的目的,要實作這個目標,就要把抽象的編程具體的,也就算在計算機上實作,變為一個具體的資料型別
一個資料型別的實作一般分為三個階段:
1.ADT階段,又被稱為定義階段 (建模,建造數學模型)
2.虛擬資料型別階段,又稱為表示階段
3.物理資料型別階段,又稱為物理實作階段
物理資料型別階段是和硬體有關,和計算機打交道,這個并不用研究,我們只需要明白 1 和2階段就好,使用高效語言(類c語言)來表示出來
例如:
抽象的抽象資料型別:用整數來表示
虛擬的虛擬資料型別:用c語言整數來表示
物理的物理資料型別:用機器整數表示
具有一種或者多種關系的資料元素的集合
資料結構、抽象資料型別、資料型別、存盤結構的關系
演算法的基礎知識
一、演算法的定義及特性
解決問題的一種方法,即它給出了求解問題的步驟描述
1、演算法的特性或要素 :5個
- 有窮性
- 確定性
- 可行性
- 輸入量
- 輸出量
有窮性
是有限的演算法,也就是這個演算法必須能結束,不能一直無限回圈
確定性
必須要確定,不能有二義性的
可行性
在計算機上可以運行,如果是錯誤的演算法或不能在計算機上運行,那么可用價值就是0了
輸入量
像演算法中輸入的內容,可以有0個,也可以有多個
輸出量
至少要一個輸出,因為演算法是要解決一個問題,要是沒有輸出,我們就不清楚它是否解決了這個問題
2.演算法與資料型別的關系
演算法對應的是操作,而資料結構對應的是存盤的結與資料的邏輯結構構
演算法是用來計算的方法,是關于問題在求解的程序中方法的描述
3.演算法與程式的區別
演算法是不嚴謹的,程式是嚴謹的,演算法 + 資料結構 = 程式
不嚴謹只是對于程式來講的,根據演算法的5個要素,其實演算法是嚴謹的,但是它不用苛刻于語言的要求,而程式必須要嚴格的按照編程語言的格式來寫
二、演算法的描述
- 自然語言描述:容易,就是啰嗦,有二義性,就是我們在聊天時說的話
- 圖示:用流程圖之類的來實作,思路清晰,第八下機(不容易實作)
- 演算法語言(類c語言,偽代碼):嚴謹簡潔易于程式實作,通常使用英語
- 程式設計語言:可以直接運行,但是太嚴格了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278853.html
標籤:其他
下一篇:航天智慧物流線上預選賽-成績公布
