數據結構

定義:

數據結構是指邏輯意義上的數據組織方式及相應處理方式

數據結構的抽象表達非常豐富,而實際物理存儲的方式相對單一。比如,二叉樹在磁盤的存儲真的是樹形排列嗎?並非如此,樹的存儲可能是基於物理上的順序存儲方式,理解爲一個格子一個格子連續的存放,第一個放根節點,第二個放左子樹根節點,並且根據引用知道左葉子在後續的哪個格子裏,第三個放右子根節點,以此類推。輸的存儲也可能是基於物理上的鏈式存儲方式。

邏輯意義上的組織方式有很多,比如樹、圖、隊列、哈希等。樹可以是二叉樹、三叉樹、B+樹等;圖可以使有向圖或無向圖;隊列是先進先出的線性隊列;哈希是根據某種算法直接定位的數據組織方式。

在既定的數據組織方式,以某種特定的算法實現數據的增加、刪除、修改、查詢和遍歷。不同的數據處理方式往往有着非常大的性能差異。

數據結構分類:

從直接前繼和直接後繼個數的維度看,大體可以將數據結構分爲以下四類。

1)線性結構

0至1個直接前繼和直接後繼。當線性結構非空時,有唯一的首元素和尾元素,除兩者外,所有元素都有唯一的直接前繼和直接後繼。線性結構包括順序表,鏈表,棧、隊列等,其中棧和隊列是訪問受限的結構。棧是先進後出,Last-In,First-Out,LIFO;隊列是先進先出,First-In,First-Out,FIFO。

2)樹結構

0至1個直接前繼和0至n個直接後繼(n大於或等於2)。樹是一種非常重要的有層次的非線性數據結構,像自然界的樹一樣。樹接口比較穩定和均衡,泛受應用。

3)圖結構

0至n個直接前繼和直接後繼(n大於或等於2)。圖結構包括簡單圖、多重圖、有向圖和無向圖等。

4)哈希結構

沒有直接前繼和後繼。哈希結構通過某種特定的哈希函數將索引與存儲的值關聯起來,是一種查詢效率非常高的數據結構。

數據不用的組織和處理方式,如何衡量數據的處理性能。數據結構的複雜度分爲空間複雜度和時間複雜度。算法時間複雜度是一種衡量計算機性能的指標,反映了程序執行時間隨輸入規模增長而增長的量級,很大程度反映算法性能的優劣。

最好到最壞常用算法複雜度排序:常數級O(1)、對數級O(logn)、線性級O(n)、線性對數級O(nlogn)、平方級O(n2)、立方級O(n3)、指數級O(2n),數據模型規模高低不一,優秀的程序不會因爲數據規模急劇上升導致性能急劇下降

發佈了37 篇原創文章 · 獲贊 4 · 訪問量 9467
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章