成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#基本概念:時間復雜度,空間復雜度,遞歸與接口

開發 后端
本文介紹了一些C#基本概念,包括時間復雜度與空間復雜度,以及遞歸和接口。

在開始前先提出二個C#基本概念:時間復雜度與空間復雜度。

時間復雜度是指該算法的運行時間與問題規模的對應的關系。時間復雜度用T(n)=0(f(n)來表示,其中0表示隨問題規模n的增大,算法執行時間的增長率和f(n)的增長率相同,如果一個沒有循環的代碼,算法的執行頻度是不會變的,記作0(1)。當算法中有一個一重循環,那執行頻率就會呈線性增長0(n*n)...等等。

光看這個表達式還是很抽象的,下面來二個例子:

1、

  1. i=n;  
  2. x=0;  
  3. while(x< i)  
  4. {  
  5.  x=x+1;   //這是個是一重循環,時間復雜度為T(n)=0(n)  

2、

  1. int re=0;  
  2. for(int i=0;i< n;i++)  
  3. {  
  4.   for(int k=0;k< n;k++)  
  5.   {  
  6.     re=re+(i*j);  //這是個是二重循環,時間復雜度為T(n)=0(n*n)  
  7.   }  

空間復雜度是指該算法的運行過程中臨時占用的存儲空間的大小。一個算法的優劣主要從算法的執行時間和所需要占用的存儲空間兩個方面衡量,算法執行時間的度量不是采用算法執行的絕對時間來計算的,因為一個算法在不同的機器上執行所花的時間不一樣,在不同時刻也會由于計算機資源占用情況的不同,使得算法在同一臺計算機上執行的時間也不一樣,所以對于算法的時間復雜性,采用算法執行過程中其基本操作的執行次數,稱為計算量來度量。

下面再次提出兩個C#基本概念:遞歸與接口

遞歸是指算法調用自己來完成它的工作。這個概念無論在算法上還是實現代碼編寫中都很重要,經常大家去面試時,都會有一條這樣的考題,在深圳這邊,我以前面試過的公司一般都有一條兔子數列。按我的看法,我在做題時就是使用遞歸算法來做的。

例:1,1,2,3,5,8,13,21,34,55,89,……求第20位

其實就是一個這樣的遞歸關系:  f(n):=f(n-1)+f(n-1)

接口是指類之間交互遵守的一個協議。

下面列出常用的接口IComparable,IEnumerable,IEnumerator,ICollection,IDictionary,IList

包插其對應的泛型接口。

下面看一個接口的例子:

  1. public interface IBook  
  2. {  
  3.     string ShowBook();  
  4.     string GetTitle();  
  5.     int GetPages();  
  6.     void SetPages(int pages);  
  7. }  
  8.  
  9. public class NewBook : IBook  
  10. {  
  11.     public string title;  
  12.     public int pages;  
  13.     public string author;  
  14.  
  15.     public NewBook(string title, string author, int pages)  
  16.     {  
  17.         this.title = title;  
  18.         this.author = author;  
  19.         this.pages = pages;  
  20.     }  
  21.  
  22.     public string GetTitle()  
  23.     {  
  24.         return title;  
  25.     }  
  26.  
  27.     public int GetPages()  
  28.     {  
  29.         return pages;  
  30.     }  
  31.  
  32.     public void SetPages(int pages)  
  33.     {  
  34.         this.pages = pages;  
  35.     }  
  36.  
  37.     public string ShowBook()  
  38.     {  
  39.         return title + "," + author + "," + pages;  
  40.     }  
  41.  
  42. }  
  43.  
  44. private void button1_Click(object sender, EventArgs e)  
  45. {  
  46.    NewBook nb = new NewBook("A""James", 200);  
  47.    richTextBox1.Text = nb.ShowBook();  
  48. }  

這里會輸出 A,James,200,在NewBook類中不能少寫一個Ibook已經定義的方法,這樣可以對外完全限定類從外面接入的方法。

這些都是最基礎的C#基本概念,需要牢牢掌握。

【編輯推薦】

  1. 討論一下C#面向集合的擴展
  2. C#3.0中Lambda表達式詳解
  3. 淺談C#泛型的用處
  4. 淺談C#如何實現多繼承
  5. C#實用基礎教程
責任編輯:yangsai 來源: cnBlogs
相關推薦

2024-04-25 08:33:25

算法時間復雜度空間復雜度

2021-01-05 10:41:42

算法時間空間

2020-12-30 05:35:56

數據結構算法

2021-09-17 10:44:50

算法復雜度空間

2021-10-15 09:43:12

希爾排序復雜度

2019-11-18 12:41:35

算法Python計算復雜性理論

2024-06-05 09:35:00

2020-02-06 13:59:48

javascript算法復雜度

2015-10-13 09:43:43

復雜度核心

2018-12-18 10:11:37

軟件復雜度軟件系統軟件開發

2022-08-16 09:04:23

代碼圈圈復雜度節點

2019-12-24 09:46:00

Linux設置密碼

2020-12-30 09:20:27

代碼

2021-06-28 06:15:14

算法Algorithm時間空間復雜度

2021-07-29 11:30:54

遞歸算法

2024-05-20 09:04:29

時間復雜度代碼

2020-11-30 06:26:31

算法時間表示法

2020-06-01 08:42:11

JavaScript重構函數

2014-07-01 15:49:33

數據結構

2011-04-12 16:40:40

C++復雜度
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久99精品免费观看 | 成人做爰69片免费观看 | 亚洲性网 | 天堂va在线| 日韩精品一区二区三区在线观看 | 欧州一区二区三区 | 在线视频国产一区 | 久久久久国产精品一区 | 久久综合欧美 | 中文字幕日韩一区 | 精品美女视频在线观看免费软件 | 一区二区三区在线免费观看 | 精品一区二区三区在线视频 | 久久久久久成人 | 综合色影院 | 日韩视频国产 | 色久五月| 成人伊人| 二区在线视频 | 一区二区国产精品 | 国产精品久久久久久久久久久久 | 日韩精品一区二区三区中文在线 | 国产高清视频 | 成年人视频在线免费观看 | 91免费入口| 成人免费影院 | 国产午夜在线 | 亚洲第一成人影院 | 国产精品久久久久国产a级 欧美日韩国产免费 | 国产免费拔擦拔擦8x高清 | 国产精品久久久久久福利一牛影视 | 亚洲国产视频一区二区 | 欧美黑人一区二区三区 | 四虎av电影| 久久精品视频一区二区三区 | 一区二区手机在线 | 三区在线 | 一区久久 | 国产一区不卡 | 操操操av | 亚洲精品视 |