什麼是資料結構?
資料結構是研究計算機中非資料值計算問題中的資料物件及它們之間的關係和操作演算法。
具體主要包含三個方面的內容:
1,資料的1邏輯結構
2,資料的儲存結構
3,資料的操作演算法
基本概念
1,資料(資訊的載體)
數值資料
非數值資料
2,資料元素
3,資料物件
4,資料結構
集合:資料元素之間屬於同乙個集合,此外,沒有任何關係
線性結構:資料元素之間存在一一對應關係
樹狀結構:資料元素之間存在一對多的層次關係
圖狀結構:資料元素之間存在多對多的任意關係
5,資料的儲存結構
又稱為物理結構,是資料及其邏輯結構在計算機中的表示。
順序儲存:用一組連續儲存單元儲存資料,資料之間邏輯關係由元素的儲存位置來表示
例如,線性表
鏈式儲存:用一組任意儲存單元儲存資料,資料之間邏輯關係由指標來表示
例如,鍊錶
資料型別
資料型別規定了該型別數的取值範圍和這些資料所能採取的操作
什麼是演算法?
演算法(algorithm)是計算機求解特定問題的方法和步驟,是指令的有限序列。
通常乙個問題可以有很多演算法,乙個給定演算法解決乙個特定問題
演算法的特性
1,演算法可以無輸入
2,演算法必須有輸出
3,有窮性:乙個演算法必須在執行有窮步之後結束(合法輸入),且每一步都在有窮時間內完成
4,確定性:演算法中每一條指令必須有確定含義,不存在二義性,相同輸入只能得到相同輸出
5,可行性:演算法描述的操作可以通過已經實現的基本操作執行有限次來完成
演算法與程式(program)不同,程式可以通過對乙個演算法使用某種程式語言具體實現。
原則上,任一演算法可以用任一一種程式語言實現。
演算法的有窮性意味著並不是所有的電腦程式都是演算法。
演算法的評價
1,正確性:演算法能滿足具體要求,及對於任何合法輸入,都會得到正確的輸出結果。
3,可讀性:乙個好的演算法應該便於人們的理解和交流。
4,高效性:演算法的效率通常指演算法的執行時間,同乙個問題,執行時間短的演算法效率高。
5,低儲存:演算法在執行過程中需要的最大儲存空間,乙個好的演算法應該占有較少的儲存空間。
演算法的高效執行時間和低執行儲存空間二者不可兼得,識情況而定,一般是犧牲空間換時間。
演算法的時間複雜度:
**大概執行的次數,一般有最好 平均 最壞三種情況
o(1):常量階
o(n):線性階
o(n^2):平方階
o(n^3):立方階
o(2^n):指數階
o(log2^n):對數階
o(n log2^n):二位階
演算法的空間複雜度:
**執行要開闢的空間次數
計算類似時間複雜度,記作 s(n) = o(f(n))
資料結構初識二
趁著今天有空。接著上次的資料結構一接著寫二 1.4 結構定義中的 關係 描述的是資料元素之間的邏輯關係,因此又稱為資料的邏輯結構。資料結構在計算機中的表示 又稱映像 稱為資料的物理結構,又稱儲存結構。1.5 資料型別是和資料結構密切相關的乙個概念,資料型別是乙個值的集合和定義在這個值集上的一組 操作...
初識資料結構
本人是乙個大三的學生,最近在看資料結構,也是第一次寫自己的部落格,有錯勿噴。可能在大學的學生都覺得資料結構是比較難的一門課程,也有許多難掌握的知識。但是在自己多次實踐過後就感覺沒有那麼困難,還是很容易掌握的。在學習過後我覺得資料結構的順序儲存就相當於陣列,陣列大家應該都不陌生吧。接下來我就給大家看一...
初識資料結構
資料結構 是將現實中大量而複雜的問題以特定的資料型別以及特定的儲存結構儲存到記憶體中,以及在此基礎上為實現某個功能而執行的相應操作 演算法 一 線性結構 連續儲存 陣列 離散儲存 鍊錶 線性結構常見應用 棧 資料結構中沒有堆,棧即堆疊 佇列 二 非線性結構 樹 圖三 查詢與排序 折半查詢 快排 冒泡...