第一節 數據結構和算法基本概念

一、數據結構的基本概念

1、數據:是對客觀事物的符號表示,在計算機科學中是指所有能輸入到計算機中並且被計算機程序處理的符號的總稱。

2、數據元素數據元素是數據的基本單位。一個數據元素可由若干個數據項組成。

3、數據項數據項是構成數據元素不可分割的最小單位

4、數據對象:性質相同數據元素的集合。

5、數據結構:在任何人問題中數據元素都是不可孤立存在的,而是他們之間存在着某種關係,這種數據元素之間的某種關係稱之爲數據結構。數據結構包括了3個方面的內容:邏輯結構、存儲結構、數據的運算

6、數據的邏輯結構:數據的邏輯結構是對數據之間邏輯的描述,他與數據的存儲結構無關,同一種邏輯結構可以有多種存儲結構。

(1)、邏輯結構的分類

a、線性結構:是一個數據元素的有序集合。

  • 集合中必存在唯一的一個第一個元素
  • 集合中必存在唯一的一個最後一個元素
  • 除最後一個元素之外,其他數據元素均有唯一的“後綴元素”。
  • 除第一個元素之外,其他的數據元素均有唯一的“前綴元素”

數據結構中,線性結構是指數據元素之間存在這“一對一”的線性關係的數據結構

b、非線性結構:非線性結構中的節點存在着一對多,多對多的關係。集合、樹、圖是典型的非線性結構。

7、數據的存儲結構(物理結構)

(1)定義:數據的物理結構又稱存儲結構,是數據邏輯結構在計算機中的表示,它包含數據元素的表示和數據關係的表示。

(2)存儲方法:數據元素之間的關係在計算機中有兩種不同的表示方法(順序映像、非順序映像)。對應的兩種不同的存儲結構分別是順序存儲結構鏈式存儲結構。順序映像是藉助數據元素之在存儲器中相對位置來表示數據元素之間的邏輯關係。非順序映像是藉助指針來表示數據元素之間的邏輯關係。

4 種常見的存儲方法:

1、順序存儲方法 :該方法把邏輯上相鄰的節點在物理上存儲上也存到相鄰的物理存儲單元中。節點之間的邏輯關係由存儲單元的鄰接關係來體現。

優點:隨機存取,每個元素佔用最少存儲空間。

缺點:易產生較多的外部鄰接碎片。

2、鏈式存儲方法:該方法不要求邏輯上相鄰的節點物理上也相鄰,節點之間的關係是通過指針字段表示的。

優點:不會出現碎片現象,充分利用所有存儲單元。

缺點:每個元素因額外的指針佔用了額外的存儲單元,並且只能實現順序存取。

3、索引存儲方法:在存儲索引元素的同時還建立附加的索引表。

優點:檢索速度快。

缺點:增加了附加的索引表,會佔用較多的存儲空間。同時在增刪數據時會增加對索引表的操作,浪費時間。

4、散列存儲:根據關鍵字直接計算出該元素的存儲地址,又稱爲Hash存儲。

優點:檢索和增刪操作很快。

缺點:可能會出現存儲單元衝突,而解決衝突會增加時間和空間開銷。

二、算法的特徵

1、有窮性:一個算法必須保證有限個步驟之後結束,且每步在有窮時間內完成。

2、確定性:算法的每一步必須有確定的含義,不會產生二義性。

3、可行性:算法中描述的操作是可以通過已經實現的基本運算執行有限次來實現。

4、輸入:一個算法有零個或者多個輸入。

5、輸出:一個算法有一個或者多個的輸出,這個輸出是同輸入有着某種關係的特定量。

三、算法的設計目標

1、正確性:算法要能正確的執行預先設定好功能和性能要求。

2、可讀性:算法要易於人的理解。

3、健壯性:算法要很好的容錯性,能夠對不合理的數據進行檢查。

4、高效率與低存儲量要求:算法的執行時間要快,需要執行內存要小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章