c#數據結構學(xué)習總結
1.數據
數據(Data)是外部世界信息的載體, 是能夠被計算機識別,加工,存儲的。在現實(shí)生活中也就是我們的產(chǎn)品原材料。
計算機中的數據包括數值數據,圖片,影音資料等.
2. 數據元素和數據項
數據元素(Data Element)是數據的基本單位,在計算機處理的過(guò)程中通常是作為一個(gè)整體來(lái)作為處理的。
數據項(Data Item):一個(gè)數據元素通常由一個(gè)或多個(gè)數據項組成。
比如數據庫表:(Student),它有Id,Name,Sex,Age,Address等字段,而這張表又有多行數據。我們通常將這些字段就叫做數據項,每行數據
就叫做數據元素。在某些情況下數據元素又稱(chēng)為元素,節點(diǎn),紀錄等。
數據項分為兩種:(1)初等項;(2)組合項[也就是可以分為更小的項,比如人可以再分為歐洲人,亞洲人,非洲人]
3.數據結構
數據結構(Data Structure) 是在相互之間存在的一種或多種特定關(guān)系的數據元素集合.
眾所周知,在計算機中任何數據元素都不可能是單一或孤立存在的,它們之間都存在著(zhù)一定的關(guān)系。就和人類(lèi)體系結構一樣,人不可能是孤立而與外界沒(méi)有關(guān)系的。
數據結構分為四種:
(1)集合[Set]
(2)線(xiàn)性結構[Linear Structure] (常見(jiàn)的線(xiàn)性結構數據,數據庫存儲數據)
(3)樹(shù)形結構[Tree Structure] (樹(shù)狀結構,就好像人類(lèi)的繼承關(guān)系,在計算機中xml文件存儲數據最為典型)
(4)圖形結構[Graphic Structure] (圖形結構也是相對比較復雜的,因為存在多對多的關(guān)系,計算機網(wǎng)絡(luò )拓撲)
4.數據對象
數據對象(Data Object),性質(zhì)相同的數據元素的集合,是數據(Data) 的一個(gè)子集。{“aa”,"bb","cc","dd"} 我們就可以將其看做是一個(gè)數據對象,都是字符長(cháng)度的集合。
5.數據類(lèi)型
數據類(lèi)型(Data Type) ,從上面的數據對象我們可以引申出數據類(lèi)型這個(gè)概念,很多時(shí)間數據類(lèi)型在C#,Java 等高級程序語(yǔ)言中說(shuō)的比較多
數據類(lèi)型分為兩種:
(1) 非結構的原子類(lèi)型 (在C#也就是基本數據類(lèi)型,如int,string,long 等)
(2)結構類(lèi)型,可以由多個(gè)結構類(lèi)型組成,并可以分解。而結構類(lèi)型可以包含結構類(lèi)型和非結構的原子類(lèi)型
6.算法
算法: 一系列解決問(wèn)題的清晰指令,算法代表著(zhù)用系統的方法描述解決問(wèn)題的策略機制。
一個(gè)算法的優(yōu)劣可以使用空間復雜度和時(shí)間復雜度來(lái)衡量。其中算法有五個(gè)特征:
(1)有窮性: 算法中每條指令的執行次數有限,執行每條指令的時(shí)間有限
(2)確切性: 算法的每一步驟必須有確切的定義
(3)輸入: 一個(gè)算法有0個(gè)或多個(gè)輸入,以刻畫(huà)運算對象的初始情況,所謂0個(gè)輸入是指算法本身定除了初始條件
(4)輸出: 一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對輸入數據加工后的結果。沒(méi)有輸出的算法是毫無(wú)意義的
(5)可行性:算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個(gè)計算步都可以在有限時(shí)間內完成
算法分類(lèi): 基本算法,數據結構算法,數論與代數算法,計算幾何算法,圖論算法,動(dòng)態(tài)規則與數據分析,加密算法,排序算法,檢索算法,隨機化算法,并行算法
7. 復雜度
算法的復雜度可以使用 時(shí)間復雜度 和 空間復雜度 來(lái)衡量。
時(shí)間復雜度:算法的時(shí)間復雜度是指算法需要消耗的時(shí)間資源
空間復雜度: 算法的空間復雜度是指算法需要消耗的空間資源
8.數據的物理結構
數據的物理結構(Physical Structure) 又稱(chēng)為 存儲結構,是數據在計算機中的.表示和存儲,包括數據元素的表示和存儲以及數據元素關(guān)系的表示和存儲。
數據結構存儲分為:(1)順序存儲結構.(2)鏈式存儲結構
順序存儲結構:通過(guò)數據元素在計算機存儲器上的相對位置來(lái)表示數據元素的邏輯關(guān)系,一般把邏輯相鄰的數據元素存儲在物理位置相鄰的存儲單元中。
C# 中的數組結構就是典型的順序存儲結構方式。
鏈式存儲結構:相鄰元素不需要在物理存儲位置單元相鄰,它們而是通過(guò)存儲相鄰數據元素的地址來(lái)維護關(guān)系。地址我們通常稱(chēng)之為為引用(Reference)
備注:此篇文章只是總結了數據結構方面的一些概念,我們在學(xué)習編程的時(shí)候經(jīng)常說(shuō)數據,復雜度等等這些概念,至于這數據,復雜度等等到底是什么東西我們也沒(méi)有去研究過(guò),這里總結了一些知識點(diǎn)可以幫助大家理解這些概念。
以上C#這篇常用數據結構和算法總結就是小編分享給大家的全部?jì)热萘,希望能給大家一個(gè)參考,也希望大家多多支持。
【c#數據結構學(xué)習總結】相關(guān)文章:
有關(guān)寫(xiě)大學(xué)學(xué)習總結-學(xué)習總結12-21
外出參觀(guān)學(xué)習總結3篇-學(xué)習總結12-21
大學(xué)三年學(xué)習總結-學(xué)習總結12-21
學(xué)年學(xué)習總結12-21
盾構學(xué)習總結11-26
學(xué)習的總結08-18
學(xué)習書(shū)法總結06-28
學(xué)習感想總結02-24