栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java 数据结构 & 算法】宁可累死自己, 也要卷死别人 19 记事法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java 数据结构 & 算法】宁可累死自己, 也要卷死别人 19 记事法

【Java 数据结构 & 算法】⚠️宁可累死自己, 也要卷死别人 19⚠️ 记事法

概述时间复杂度大 O 记事法大 Ω Omega Ω 记事法大 Θ Theta Θ 记事法

概述

从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章.

时间复杂度

时间复杂度 (Time Complexity) 用来描述一个算法运行的时间.

大 O 记事法

大 O 记事法 (Big O Notation) 是用来描述一个算法最坏的情况下的时间复杂度. 大 O 记事法可以描述一个算法的上界, 通过常用输入大小函数来表示算法的最大运行时间.

大 O 记事法的定义:

当 f(n) 和 g(n) 满足 f ( n ) < = c ∗ g ( n ) f(n) <= c*g(n) f(n)<=c∗g(n), n > = n ( ₀ ) n >= n(₀) n>=n(₀), c > 0 c > 0 c>0, n ( ₀ ) > 1 n(₀) > 1 n(₀)>1可以得到函数 (算法) 的时间复杂度为 f ( n ) = O ( g ( n ) ) f(n) = O(g(n)) f(n)=O(g(n))

举个栗子, 2 n + 3 2n + 3 2n+3 的图像为:


我们可以得到:

2 n + 3 < = 5 ∗ n 2n + 3 <= 5 * n 2n+3<=5∗n, ( f ( n ) = 2 n + 3 f(n) = 2n + 3 f(n)=2n+3, c = 5 c = 5 c=5, g ( n ) = n g(n) = n g(n)=n)所以 2 n + 3 2n + 3 2n+3 的时间复杂度为 O ( n ) O(n) O(n) 大 Ω Omega Ω 记事法

大 Ω Omega Ω 记事法 (Big Ω Omega Ω Notation) 是用来描述一个算法最好的情况下的时间复杂度. 大 Ω Omega Ω 记事法可以描述一个算法的下界, 通过常用输入大小函数来表示算法的最小运行时间.

大 Ω Omega Ω 记事法的定义:

当 f(n) 和 g(n) 满足 f ( n ) > = c ∗ g ( n ) f(n) >= c*g(n) f(n)>=c∗g(n), n > = n ( ₀ ) n >= n(₀) n>=n(₀), c > 0 c > 0 c>0, n ( ₀ ) > 1 n(₀) > 1 n(₀)>1可以得到函数 (算法) 的时间复杂度为 f ( n ) = Ω ( g ( n ) ) f(n) = Omega(g(n)) f(n)=Ω(g(n))

举个栗子, 2 n + 3 2n + 3 2n+3 的图像为:


我们可以得到:

2 n + 3 > = 1 ∗ n 2n + 3 >= 1 * n 2n+3>=1∗n, ( f ( n ) = 2 n + 3 f(n) = 2n + 3 f(n)=2n+3, c = 1 c = 1 c=1, g ( n ) = n g(n) = n g(n)=n)所以 2 n + 3 2n + 3 2n+3 的时间复杂度为 Ω ( n ) Omega(n) Ω(n) 大 Θ Theta Θ 记事法

大 Θ Theta Θ 记事法 (Big Θ Theta Θ Notation) 是用来描述一个算法平均情况下的时间复杂度. 大 Θ Theta Θ 记事法可以描述一个算法的下界, 通过常用输入大小函数来表示算法的最小运行时间.

大 Θ Theta Θ 记事法的定义:

当 f(n) 和 g(n) 满足 c 1 ∗ g ( n ) < = f ( n ) < = c 2 ∗ g ( n ) c1*g(n) <= f(n) <= c2*g(n) c1∗g(n)<=f(n)<=c2∗g(n), n > = n ( ₀ ) n >= n(₀) n>=n(₀), c 1 , c 2 > 0 c1, c2 > 0 c1,c2>0, n ( ₀ ) > 1 n(₀) > 1 n(₀)>1可以得到函数 (算法) 的时间复杂度为 f ( n ) = Θ ( g ( n ) ) f(n) = Theta(g(n)) f(n)=Θ(g(n))

举个栗子, 2 n + 3 2n + 3 2n+3 的图像为:


我们可以得到:

1 ∗ n < = 2 n + 3 < = 5 ∗ n 1*n <= 2n + 3 <= 5*n 1∗n<=2n+3<=5∗n, ( f ( n ) = 2 n + 3 f(n) = 2n + 3 f(n)=2n+3, c 1 = 1 c1 = 1 c1=1, c 2 = 5 c2 = 5 c2=5, g ( n ) = n g(n) = n g(n)=n)所以 2 n + 3 2n + 3 2n+3 的时间复杂度为 Θ ( n ) Theta(n) Θ(n)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/715581.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号