1.資料
資料(Data)是外部世界資訊的載體, 是能夠被電腦識別,加工,儲存的。在現實生活中也就是我們的產品原材料。
電腦中的資料包括數值資料,圖片,影音資料等.
2. 資料元素和資料項目
資料元素(Data Element)是資料的基本單位,在電腦處理的過程中通常是作為一個整體來作為處理的。
資料項目(Data Item):一個資料元素通常由一個或多個資料項目組成。
比如資料庫表:(Student),它有Id,Name,Sex,Age,Address等欄位,而這張表又有多行資料。我們通常將這些欄位就叫做資料項目,每行資料
就叫做資料元素。在某些情況下資料元素又稱為元素,節點,紀錄等。
資料項目分為兩種:(1)初等項;(2)組合項[也就是可以分為更小的項,比如人可以再分為歐洲人,亞洲人,非洲人]
3.資料結構
資料結構(Data Structure) 是在相互之間存在的一種或多種特定關係的資料元素集合.
眾所周知,在電腦中任何資料元素都不可能是單一或孤立存在的,它們之間都存在著一定的關係。就和人類體繫結構一樣,人不可能是孤立而與外界沒有關係的。
資料結構分為四種:
(1)集合[Set]
(2)線性結構[Linear Structure] (常見的線性結構資料,資料庫儲存資料)
(3)樹形結構[Tree Structure] (樹狀結構,就好像人類的繼承關係,在電腦中xml檔案儲存體資料最為典型)
(4)圖形結構[Graphic Structure] (圖形結構也是相對比較複雜的,因為存在多對多的關係,電腦網路拓撲)
4.資料對象
資料對象(Data Object),性質相同的資料元素的集合,是資料(Data) 的一個子集。{“aa”,"bb","cc","dd"} 我們就可以將其看做是一個資料對象,都是字元長度的集合。
5.資料類型
資料類型(Data Type) ,從上面的資料對象我們可以引申出資料類型這個概念,很多時間資料類型在C#,Java 等進階程式語言中說的比較多
資料類型分為兩種:
(1) 非結構的原子類型 (在C#也就是基礎資料型別 (Elementary Data Type),如int,string,long 等)
(2)結構類型,可以由多個結構類型組成,並可以分解。而結構類型可以包含結構類型和非結構的原子類型
6.演算法
演算法: 一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。
一個演算法的優劣可以使用空間複雜度和時間複雜度來衡量。其中演算法有五個特徵:
(1)有窮性: 演算法中每條指令的執行次數有限,執行每條指令的時間有限
(2)確切性: 演算法的每一步驟必須有確切的定義
(3)輸入: 一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件
(4)輸出: 一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的
(5)可行性:演算法中執行的任何計算步都是可以被分解為基本的可執行檔操作步,即每個計算步都可以在有限時間內完成
演算法分類: 基本演算法,資料結構演算法,數論與代數演算法,計算幾何演算法,圖論演算法,動態規則與資料分析,密碼編譯演算法,排序演算法,檢索演算法,隨機化演算法,並行演算法
7. 複雜度
演算法的複雜度可以使用 時間複雜度 和 空間複雜度 來衡量。
時間複雜度:演算法的時間複雜度是指演算法需要消耗的時間資源
空間複雜度: 演算法的空間複雜度是指演算法需要消耗的空間資源
8.資料的物理結構
資料的物理結構(Physical Structure) 又稱為 儲存結構,是資料在電腦中的表示和儲存,包括資料元素的表示和儲存以及資料元素關係的表示和儲存。
資料結構儲存分為:(1)順序儲存結構.(2)鏈式儲存結構
順序儲存結構:通過資料元素在電腦儲存空間上的相對位置來表示資料元素的邏輯關係,一般把邏輯相鄰的資料元素儲存在物理位置相鄰的儲存單元中。
C# 中的數組結構就是典型的順序儲存結構方式。
鏈式儲存結構:相鄰元素不需要在實體儲存體位置單元相鄰,它們而是通過儲存相鄰資料元素的地址來維護關係。地址我們通常稱之為為引用(Reference)
備忘:此篇文章只是總結了資料結構方面的一些概念,我們在學習編程的時候經常說資料,複雜度等等這些概念,至於這資料,複雜度等等到底是什麼東西我們也沒有去研究過,這裡總結了一些知識點可以協助大家理解這些概念。
以上這篇C#常用資料結構和演算法總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。