c#資料結構學習總結

c#資料結構學習總結

  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#也就是基本資料型別,如int,string,long 等)

  (2)結構型別,可以由多個結構型別組成,並可以分解。而結構型別可以包含結構型別和非結構的原子型別

  6.演算法

  演算法: 一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。

  一個演算法的優劣可以使用空間複雜度和時間複雜度來衡量。其中演算法有五個特徵:

  (1)有窮性: 演算法中每條指令的執行次數有限,執行每條指令的時間有限

  (2)確切性: 演算法的每一步驟必須有確切的定義

  (3)輸入: 一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定除了初始條件

  (4)輸出: 一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的

  (5)可行性:演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成

  演算法分類: 基本演算法,資料結構演算法,數論與代數演算法,計算幾何演算法,圖論演算法,動態規則與資料分析,加密演算法,排序演算法,檢索演算法,隨機化演算法,並行演算法

  7. 複雜度

  演算法的複雜度可以使用 時間複雜度 和 空間複雜度 來衡量。

  時間複雜度:演算法的時間複雜度是指演算法需要消耗的時間資源

  空間複雜度: 演算法的空間複雜度是指演算法需要消耗的空間資源

  8.資料的物理結構

  資料的物理結構(Physical Structure) 又稱為 儲存結構,是資料在計算機中的.表示和儲存,包括資料元素的表示和儲存以及資料元素關係的表示和儲存。

  資料結構儲存分為:(1)順序儲存結構.(2)鏈式儲存結構

  順序儲存結構:透過資料元素在計算機儲存器上的相對位置來表示資料元素的邏輯關係,一般把邏輯相鄰的資料元素儲存在物理位置相鄰的儲存單元中。

  C# 中的陣列結構就是典型的順序儲存結構方式。

  鏈式儲存結構:相鄰元素不需要在物理儲存位置單元相鄰,它們而是透過儲存相鄰資料元素的地址來維護關係。地址我們通常稱之為為引用(Reference)

  備註:此篇文章只是總結了資料結構方面的一些概念,我們在學習程式設計的時候經常說資料,複雜度等等這些概念,至於這資料,複雜度等等到底是什麼東西我們也沒有去研究過,這裡總結了一些知識點可以幫助大家理解這些概念。

  以上C#這篇常用資料結構和演算法總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援。

最近訪問