天天看點

【Java 資料結構 & 算法】甯可累死自己, 也要卷死别人 19 記事法

【Java 資料結構 & 算法】⚠️甯可累死自己, 也要卷死别人 19⚠️ 記事法

  • ​​概述​​
  • ​​時間複雜度​​
  • ​​大 O 記事法​​
  • ​​大

    Ω

    \Omega

    Ω 記事法​​

  • ​​大

    Θ

    \Theta

    Θ 記事法​​

概述

從今天開始, 小白我将帶大家開啟 Java 資料結構 & 算法的新篇章.

【Java 資料結構 & 算法】甯可累死自己, 也要卷死别人 19 記事法

時間複雜度

時間複雜度 (Time Complexity) 用來描述一個算法運作的時間.

【Java 資料結構 & 算法】甯可累死自己, 也要卷死别人 19 記事法

大 O 記事法

大 O 記事法 (Big O Notation) 是用來描述一個算法最壞的情況下的時間複雜度. 大 O 記事法可以描述一個算法的上界, 通過常用輸入大小函數來表示算法的最大運作時間.

大 O 記事法的定義:

  • 當 f(n) 和 g(n) 滿足,,,
  • 可以得到函數 (算法) 的時間複雜度為

舉個栗子, 的圖像為:

【Java 資料結構 & 算法】甯可累死自己, 也要卷死别人 19 記事法

我們可以得到:

  • , (,,)
  • 是以的時間複雜度為

Ω

\Omega

Ω 記事法

大 記事法 (Big Notation) 是用來描述一個算法最好的情況下的時間複雜度. 大 記事法可以描述一個算法的下界, 通過常用輸入大小函數來表示算法的最小運作時間.

大 記事法的定義:

  • 當 f(n) 和 g(n) 滿足,,,
  • 可以得到函數 (算法) 的時間複雜度為

舉個栗子, 的圖像為:

【Java 資料結構 & 算法】甯可累死自己, 也要卷死别人 19 記事法

我們可以得到:

  • , (,,)
  • 是以的時間複雜度為

Θ

\Theta

Θ 記事法

大 記事法 (Big Notation) 是用來描述一個算法平均情況下的時間複雜度. 大 記事法可以描述一個算法的下界, 通過常用輸入大小函數來表示算法的最小運作時間.

大 記事法的定義:

  • 當 f(n) 和 g(n) 滿足,,,
  • 可以得到函數 (算法) 的時間複雜度為

舉個栗子, 的圖像為:

  • , (,,,)
  • 是以的時間複雜度為