![]() |
1
14
这个符号叫做 Big O notation ,并用作表示算法复杂性的速记(基本上是给定算法随着输入大小(n)的增长运行所需的时间) 一般来说,您会遇到以下主要类型的算法:
一般来说,你可以通过观察一个算法是如何使用的来粗略估计它的复杂程度。例如,查看以下方法:
这里必须做几件事:
这里有一些操作是以固定时间运行的(前两个和最后一个),因为x的大小不会影响它们运行的时间。另外,有些操作是以线性时间运行的(因为它们对x中的每个条目运行一次)。使用大O表示法,算法被简化为最复杂的,所以这个求和算法将在 |
![]() |
2
4
了解 Computational Complexity 首先,尝试一些关于算法的书,比如 Introduction to Algorithms . 从维基百科页面:
在这种情况下,有时估计函数/算法的复杂度并不是那么简单 amortized analysis 已使用。上面的代码只能用作快速入门。 |
![]() |
3
0
这就是所谓的 Big O notation 用来量化算法的复杂度。
O(n)表示算法速度随数据量线性增长。
所以O符号中n的幂越低,你的算法就越适合解决这个问题。最佳情况是O(1)(n=0)。但许多问题都有其固有的复杂性,因此在几乎所有情况下都找不到如此理想的算法。 |
![]() |
4
0
到目前为止,答案是好的。网络搜索的主要术语是“大O符号”。 “someformula is O(someterm)”数学背后的基本思想是,当变量变为无穷大时,“someterm”是公式中占主导地位的部分。
|
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |