fix typos

show some LaTeX formula correctly
This commit is contained in:
paigeman
2024-03-09 10:28:31 +08:00
committed by GitHub
parent 3bc9d8eb56
commit 40eda312e6

View File

@ -14,9 +14,9 @@
也就是说程序运行的时间超过了规定的时间一般OJonline judge的超时时间就是1s也就是用例数据输入后最多要1s内得到结果暂时还不清楚leetcode的判题规则下文为了方便讲解暂定超时时间就是1s。 也就是说程序运行的时间超过了规定的时间一般OJonline 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年MacProCPU配置2.7 GHz Dual-Core Intel Core i5 测试硬件2015年MacProCPU配置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() {
![程序超时2](https://code-thinking-1253855093.file.myqcloud.com/pics/20200729200018460-20230310124315093.png) ![程序超时2](https://code-thinking-1253855093.file.myqcloud.com/pics/20200729200018460-20230310124315093.png)
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)开根号,实验数据如下。
![程序超时3](https://code-thinking-1253855093.file.myqcloud.com/pics/2020072919590970-20230310124318532.png) ![程序超时3](https://code-thinking-1253855093.file.myqcloud.com/pics/2020072919590970-20230310124318532.png)
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$ 的复杂度 其实是很快,看一下实验数据。
![程序超时4](https://code-thinking-1253855093.file.myqcloud.com/pics/20200729195729407-20230310124322232.png) ![程序超时4](https://code-thinking-1253855093.file.myqcloud.com/pics/20200729195729407-20230310124322232.png)
$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的大小。
建议录友们也都自己做一做实验,测一测,看看是不是和我的测出来的结果差不多。 建议录友们也都自己做一做实验,测一测,看看是不是和我的测出来的结果差不多。