mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
fix typos
show some LaTeX formula correctly
This commit is contained in:
@ -14,9 +14,9 @@
|
|||||||
|
|
||||||
也就是说程序运行的时间超过了规定的时间,一般OJ(online judge)的超时时间就是1s,也就是用例数据输入后最多要1s内得到结果,暂时还不清楚leetcode的判题规则,下文为了方便讲解,暂定超时时间就是1s。
|
也就是说程序运行的时间超过了规定的时间,一般OJ(online judge)的超时时间就是1s,也就是用例数据输入后最多要1s内得到结果,暂时还不清楚leetcode的判题规则,下文为了方便讲解,暂定超时时间就是1s。
|
||||||
|
|
||||||
如果写出了一个$O(n)$的算法 ,其实可以估算出来n是多大的时候算法的执行时间就会超过1s了。
|
如果写出了一个 $O(n)$ 的算法 ,其实可以估算出来n是多大的时候算法的执行时间就会超过1s了。
|
||||||
|
|
||||||
如果n的规模已经足够让$O(n)$的算法运行时间超过了1s,就应该考虑log(n)的解法了。
|
如果n的规模已经足够让 $O(n)$ 的算法运行时间超过了1s,就应该考虑log(n)的解法了。
|
||||||
|
|
||||||
## 从硬件配置看计算机的性能
|
## 从硬件配置看计算机的性能
|
||||||
|
|
||||||
@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
测试硬件:2015年MacPro,CPU配置:2.7 GHz Dual-Core Intel Core i5
|
测试硬件:2015年MacPro,CPU配置:2.7 GHz Dual-Core Intel Core i5
|
||||||
|
|
||||||
实现三个函数,时间复杂度分别是 $O(n)$ , $O(n^2)$, $O(n\log n)$,使用加法运算来统一测试。
|
实现三个函数,时间复杂度分别是 $O(n)$ , $O(n^2)$ , $O(n\log n)$ ,使用加法运算来统一测试。
|
||||||
|
|
||||||
```CPP
|
```CPP
|
||||||
// O(n)
|
// O(n)
|
||||||
@ -126,19 +126,19 @@ int main() {
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
O(n)的算法,1s内大概计算机可以运行 5 * (10^8)次计算,可以推测一下$O(n^2)$ 的算法应该1s可以处理的数量级的规模是 5 * (10^8)开根号,实验数据如下。
|
O(n)的算法,1s内大概计算机可以运行 5 * (10^8)次计算,可以推测一下 $O(n^2)$ 的算法应该1s可以处理的数量级的规模是 5 * (10^8)开根号,实验数据如下。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
O(n^2)的算法,1s内大概计算机可以运行 22500次计算,验证了刚刚的推测。
|
O(n^2)的算法,1s内大概计算机可以运行 22500次计算,验证了刚刚的推测。
|
||||||
|
|
||||||
在推测一下$O(n\log n)$的话, 1s可以处理的数据规模是什么呢?
|
在推测一下 $O(n\log n)$ 的话, 1s可以处理的数据规模是什么呢?
|
||||||
|
|
||||||
理论上应该是比 $O(n)$少一个数量级,因为$\log n$的复杂度 其实是很快,看一下实验数据。
|
理论上应该是比 $O(n)$ 少一个数量级,因为 $\log n$ 的复杂度 其实是很快,看一下实验数据。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
$O(n\log n)$的算法,1s内大概计算机可以运行 2 * (10^7)次计算,符合预期。
|
$O(n\log n)$ 的算法,1s内大概计算机可以运行 2 * (10^7)次计算,符合预期。
|
||||||
|
|
||||||
这是在我个人PC上测出来的数据,不能说是十分精确,但数量级是差不多的,大家也可以在自己的计算机上测一下。
|
这是在我个人PC上测出来的数据,不能说是十分精确,但数量级是差不多的,大家也可以在自己的计算机上测一下。
|
||||||
|
|
||||||
@ -263,7 +263,7 @@ public class TimeComplexity {
|
|||||||
|
|
||||||
## 总结
|
## 总结
|
||||||
|
|
||||||
本文详细分析了在leetcode上做题程序为什么会有超时,以及从硬件配置上大体知道CPU的执行速度,然后亲自做一个实验来看看$O(n)$的算法,跑一秒钟,这个n究竟是做大,最后给出不同时间复杂度,一秒内可以运算出来的n的大小。
|
本文详细分析了在leetcode上做题程序为什么会有超时,以及从硬件配置上大体知道CPU的执行速度,然后亲自做一个实验来看看 $O(n)$ 的算法,跑一秒钟,这个n究竟是做大,最后给出不同时间复杂度,一秒内可以运算出来的n的大小。
|
||||||
|
|
||||||
建议录友们也都自己做一做实验,测一测,看看是不是和我的测出来的结果差不多。
|
建议录友们也都自己做一做实验,测一测,看看是不是和我的测出来的结果差不多。
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user