C#資料結構一:基礎知識

來源:互聯網
上載者:User

 

在學習資料結構之前先要學習幾個相關的概念及術語1、資料(Data):資料是外部世界資訊的載體,它能被電腦識別、儲存和加工處理,是電腦程式加工的原料。2、資料元素(Data Element)和資料項目:資料元素是資料的基本單位,有時也被稱為元素、結點、頂點、記錄等。一個資料元素可由若干個資料項目組成;資料項目是不可分割的、含有獨立意義的最小資料單位,資料項目有時也稱為欄位(Field)或域(Domain).之間關係為資料項目組成資料元素,資料元素組成資料(,資料群組成檔案)。使用資料庫模型來舉例說明:3、資料對象(Data Object):性質相同的資料元素的集合,是資料的一個子集,例如字母表對象{a,b,c,…x,y,z}4、資料類型(Data Type):資料的取值範圍和對資料進行操作的總和。資料類型規定了程式中對象的特性;程式中每個變數、常量或運算式的結果都應該屬於某種確定的資料類型。資料類型可分可兩類:一類是非結構的原子類型,如C#的基本類型;另一類是結構類型,其成分由多個結構類型組成,可以分解;如C#的數群組類型。5、資料結構(Data Struct):相互之間存在一種或多種關係 的資料元素的集合。通常有4類基本資料結構:1)集合(Set)2)線性結構(Linear Structure)3)樹形結構(True Structure)4)圖狀結構(Graphic Structure)資料結構(Data Structrue)簡記為DS,是一個二元組,DS=(D,S),其中D為資料元素的有限集合,R是資料元素之間關係的有限集合。6、演算法(Algorithm):是對某一特定類型的問題的求解步驟的一種描述,是指令的有限序列。它具有有窮性(Finity)、確定性(Unambiguousness)、輸入(Input)、輸出(Output)和有效性(Realizability)。針對演算法優劣的評價標準包括正確性(Correctness)、可讀性(Readability)、健壯性(Robustness魯棒性)、已耗用時間(Running Time)和佔用空間(Storage Space)。7、演算法的時間複雜度(Time Complexity):指演算法的已耗用時間與問題規模的對應關係。通常把演算法中基本操作重複執行的次數作為演算法的時間複雜度。它是與問題規模n相關的函數。記作T(n)=O(f(n)),例如T(n)=n(n+1),推薦一篇好文http://www.matrix67.com/blog/archives/5298、高等數學相關基礎知識計量單位(Unit):位元組為B,位縮寫為b,MB為MB,KB縮寫為KB階乘函數(Factorial Function):5!=5*4*3*2*1=120,特別地,0!=1取下整和取上整(Floor and Ceiling):⌊3.4⌋=3(下整) ,⌈3.4⌉=4(上整)模數操作符(Modulus):n=q*m+r ⇒m=n/q對數(Logarithm):若ab=N,那麼數b叫做以a為底N的對數,記作logaN=b,其中a叫做對數的底數,N叫做真數。遞迴(Recursive):演算法調用自己或間接調用自己。

在學習資料結構之前先要學習幾個相關的概念及術語

1、資料(Data):資料是外部世界資訊的載體,它能被電腦識別、儲存和加工處理,是電腦程式加工的原料。

2、資料元素(Data Element)和資料項目:資料元素是資料的基本單位,有時也被稱為元素、結點、頂點、記錄等。一個資料元素可由若干個資料項目組成;資料項目是不可分割的、含有獨立意義的最小資料單位,資料項目有時也稱為欄位(Field)或域(Domain).之間關係為資料項目組成資料元素,資料元素組成資料(,資料群組成檔案)。使用資料庫模型來舉例說明:


3、資料對象(Data Object):性質相同的資料元素的集合,是資料的一個子集,例如字母表對象{a,b,c,…x,y,z}

4、資料類型(Data Type):資料的取值範圍和對資料進行操作的總和。資料類型規定了程式中對象的特性;程式中每個變數、常量或運算式的結果都應該屬於某種確定的資料類型。資料類型可分可兩類:一類是非結構的原子類型,如C#的基本類型;另一類是結構類型,其成分由多個結構類型組成,可以分解;如C#的數群組類型

。5、資料結構(Data Struct):相互之間存在一種或多種關係 的資料元素的集合。通常有4類基本資料結構:

1)集合(Set)

2)線性結構(Linear Structure)

3)樹形結構(True Structure)

4)圖狀結構(Graphic Structure)


資料結構(Data Structrue)簡記為DS,是一個二元組,DS=(D,S),其中D為資料元素的有限集合,R是資料元素之間關係的有限集合。

6、演算法(Algorithm):是對某一特定類型的問題的求解步驟的一種描述,是指令的有限序列。它具有有窮性(Finity)、確定性(Unambiguousness)、輸入(Input)、輸出(Output)和有效性(Realizability)。針對演算法優劣的評價標準包括正確性(Correctness)、可讀性(Readability)、健壯性(Robustness魯棒性)、已耗用時間(Running Time)和佔用空間(Storage Space)。

7、演算法的時間複雜度(Time Complexity):指演算法的已耗用時間與問題規模的對應關係。通常把演算法中基本操作重複執行的次數作為演算法的時間複雜度。它是與問題規模n相關的函數。記作T(n)=O(f(n)),例如T(n)=n(n+1)。

常見時間複雜度舉例:

1)、O(n) 

x=n;y=0;while(y<x){ y=y+1;}

 2)、O(n2) 

for(int i=1;i<n;++i){
for(int j=0;j<n;++j){ A[i][j]=i*j; }}

 

3)、O()

 

x=n;y=0;while(x>=(y+1)*(y+1)){//即x=y2+1 y=y+1;}

 

關於演算法複雜度,推薦一篇好文http://www.matrix67.com/blog/archives/529

8、高等數學相關基礎知識

計量單位(Unit):位元組為B,位縮寫為b,MB為MB,KB縮寫為KB

階乘函數(Factorial Function):5!=5*4*3*2*1=120,特別地,0!=1

取下整和取上整(Floor and Ceiling):⌊3.4⌋=3(下整) ,⌈3.4⌉=4(上整)

模數操作符(Modulus):n=q*m+r ⇒m=n/q

對數(Logarithm):若ab=N,那麼數b叫做以a為底N的對數,記作logaN=b,其中a叫做對數的底數,N叫做真數。

遞迴(Recursive):演算法調用自己或間接調用自己。

 

========================================================

C#資料結構系列文章:

1、基礎知識

2、順序表Sequence List

3、單鏈表Singly Linked List

4、雙向鏈表Double Linked List

5、迴圈鏈表Circular Linked List

6、棧Stack

7、隊列Queue

8、串

9、數組Array

10、樹Tree

...

我的首頁:http://www.51obj.cn/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.