資料結構
:資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作等的學科。
基本概念與術語:
資料:是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。
資料元素:
是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。乙個資料元素可由若干個資料項組成。
資料項:資料的不可分割的最小單位。
資料物件
:是
性質相同的資料元素的集合
,是資料的子集。
資料結構
:相互之間存在一定
關係
的資料元素
的集合。按照視點的不同,資料結構分為邏輯結構和儲存結構。
邏輯結構:指資料元素之間
邏輯關係
的整體。
資料的邏輯結構是從具體問題抽象出來的
資料模型
儲存結構
:又稱為物理結構,是資料及其邏輯結構在
計算機
中的表示。
資料結構從邏輯上分為四類:
⑴ 集合
:資料元素之間就是
「屬於同乙個集合」 ;
⑵ 線性結構
:資料元素之間
存在著一對一的線性關係;
⑶ 樹結構
:資料元素之間存在
著乙個對多個的關係
⑷ 圖結構
:資料元素之間存在著多個
對多的個
任意關係。
兩種儲存結構:1.
順序儲存結構:用一組連續的儲存單元依次儲存資料元素,資料元素之間的邏輯關係由元素的
儲存位置
來表示。
2.鏈結儲存結構
:用一組任意的儲存單元儲存資料元素,資料元素之間的邏輯關係用
指標
來表示。
邏輯結構和儲存結構之間的關係
資料的邏輯結構屬於使用者檢視,是面向問題的,反映了資料內部的構成方式;資料的儲存結構屬於具體實現的檢視,是面向計算機的。
抽象資料型別
.資料型別
(data type):一組值的集合以及定義於這個值集上的一組操作的總稱。
例如:c語言中的整型變數,其值集為某個區間上的整數(區間大小依賴不同的機器,定義在其上的操作為加減乘除取模等算術運算)
2.抽象
(abstract):抽出問題本質的特徵而忽略非本質的細節。
例如: 地圖、駕駛汽車
3.抽象資料型別
(abstract data type,adt):乙個資料結構以及定義在該結構上的一組操作的總稱。
演算法:是對特定問題
求解步驟的一種描述,是指令的
有限序列
。演算法的五大特性: ⑴
輸入:乙個演算法有零個或多個輸入。
⑵ 輸出
:乙個演算法有乙個或多個輸出。
⑶ 有窮性
:乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。
⑷ 確定性
:演算法中的每一條指令必須有確切的含義,對於相同的輸入只能得到相同的輸出。
⑸ 可行性
:演算法描述的操作可以通過已經實現的基本操作執行有限次來實現。
演算法的描述方法
自然語言
優點:容易理解
缺點:冗長、二義性
使用方法:粗線條描述演算法思想
注意事項:避免寫成自然段
流程圖優點:流程直觀
缺點:缺少嚴密性、靈活性
使用方法:描述簡單演算法
注意事項:注意抽象層次
程式語言
優點:能由計算機執行
缺點:抽象性差,對語言要求高
使用方法:演算法需要驗證
注意事項:將演算法寫成子函式
偽**偽**
:介於自然語言和程式語言之間的方法,它採用某一程式語言的基本語法,操作指令可以結合自然語言來設計。
優點:表達能力強,抽象性強,容易理解
演算法分析--
度量演算法效率的方法:
事後統計
:將演算法實現,測算其時間和空間開銷。
缺點:⑴ 編寫程式實現演算法將花費較多的時間和精力;
⑵ 所得實驗結果依賴於計算機的軟硬體等環境因素。
事前分析
:對演算法所消耗資源的一種估算方法。
演算法分析
:對演算法所需要的計算機資源
——時間和空間
進行估算。
時間複雜性
空間複雜性
問題規模:
輸入量的多少。
基本語句:
是執行次數與整個演算法的執行次
數成正比的操作指令。
定理:若a(
n)=am
nm+a
m-1nm
-1+¼+
a1n+
a0是乙個m
次多項式,則a(
n)=o(
nm)。說明:在計算演算法時間複雜度時,可以忽略所有低次冪和最高次冪的係數。 ο
(1)<
(log2n
)<(n
)<(n
log2n)
<(n2
)<(n
3)<…
<(2n)
<(n!)
結論:如果問題規模相同,時間代價與輸入資料有關,則需要分析最好情況、最壞情況、平均情況。
最好情況:出現概率較大時分析
最差情況:實時系統
平均情況:已知輸入資料是如何分布的,
通常假設等概率分布
尊重原創:**
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...
資料結構 緒論
程式 資料結構 演算法 資料 對客觀事物的符號表示。資料元素 資料的基本單位,由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 性質相同的資料元素的集合,使資料的乙個子集。資料元素是相互之間存在一種或多種特定關係的資料元素的集合。預定義常量型別 函式結果狀態嗎 define true 1...
資料結構緒論
資料結構是一種抽象資料的過程,這種能力是任何工具都無法代替的。學習資料結構的目的 資料結構是計算機專業的基礎,它為幾乎所有的軟體設計的基礎。同時他也培養求解複雜問題的能力。那麼,什麼是資料結構呢,這個概念是很重要的,人月神話上有一段話,說人們往往喜歡將問題分解開來處理,但是這樣一來造成了對整個問題的...