日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
C#基本概念:時間復雜度,空間復雜度,遞歸與接口

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

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

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

1、

 
 
 
  1. i=n;  
  2. x=0;  
  3. while(x< i)  
  4. {  
  5.  x=x+1;   //這是個是一重循環(huán),時間復雜度為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);  //這是個是二重循環(huán),時間復雜度為T(n)=0(n*n)  
  7.   }  

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

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

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

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

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

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

下面列出常用的接口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#基本概念,需要牢牢掌握。


新聞標題:C#基本概念:時間復雜度,空間復雜度,遞歸與接口
文章鏈接:http://m.5511xx.com/article/dhoppgc.html