Skip to content

Commit ccb22c1

Browse files
committed
update
1 parent b699171 commit ccb22c1

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

JavaKnowledge/数据结构和算法/算法.md

+4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717
算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成
1818

1919

20+
2021
### 算法时间复杂度
22+
23+
一个算法的时间复杂度(Time Complexity)是指算法运行从开始到结束所需要的时间。这个时间就是该算法中每条语句的执行时间之和,而每条语句的执行时间是该语句执行次数(也称为频度)与执行该语句所需时间的乘积。但是,当算法转换为程序之后,一条语句执行一次所需的时间与机器的性能及编译程序生成目标代码的质量有关,是很难确定的。为此,假设执行每条语句所需的时间均为单位时间。在这一假设下,一个算法所花费的时间就等于算法中所有语句的频度之和。这样就可以脱离机器的硬、软件环境而独立地分析算法所消耗的时间。
24+
2125
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。
2226

2327
这样用大写O( )来体现算法时间复杂度的记法,我们称之为大O记法。

0 commit comments

Comments
 (0)