數據結構筆記---複雜度判定

1.時間複雜度:

一個算法的執行時間這一變化趨勢可表示爲輸入規模的一個函數,稱之爲時間複雜度(time compleity)

影響執行時間的因素有:

  • 輸入的實例規模
  • 輸入各元素的不同
  • 輸入次序
  • 不同的硬件平臺上
  • 不同的操作系統

因此爲了超脫於具體硬件平臺和軟件環境,我們將時間複雜度理解爲算法中各條指令的執行時間之和(即算法執行基本操作的總次數)。

也就是說T(n)決定於組成算法的所有語句各自的執行次數,以及其中所含基本操作的數目

實例規模n相同情況下:

規模爲n的所有輸入中選擇執行時間最長者作爲T(n),T(n)就是算法處理規模爲n的問題所需的時間。

當實例規模n足夠大時:

f(n)給出了T(n)增長速度的一個漸進上界,此時

T(n)=O(f(n)),即大O記號表示了一個函數的上限

1.1大O記號的性質(上界):

從這可以看出,大O記號的意義下,函數各項正的常係數可以忽略並且等同於1。後一性質則意味着,多項式中的低次項均可忽略,只保留最高項。

1.2下界

1.3確界

2.空間複雜度

算法所需存儲空間的多少也是衡量其性能的一個重要方面,這就是空間複雜度(space complexity)。

其實相對時間複雜度而言,空間複雜度不是那麼重要。就漸進複雜度的意義而言,在任一算法的任何一次運行過程中所消耗的存儲空間,都不會多於其間所執行基本操作的累計次數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章