mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
更新 时间复杂度 O(n)超时 拍版格式修复
This commit is contained in:
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
计算机究竟1s可以执行多少次操作呢? 接下来探讨一下这个问题。
|
计算机究竟1s可以执行多少次操作呢? 接下来探讨一下这个问题。
|
||||||
|
|
||||||
# 超时是怎么回事
|
## 超时是怎么回事
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
如果n的规模已经足够让O(n)的算法运行时间超过了1s,就应该考虑log(n)的解法了。
|
如果n的规模已经足够让O(n)的算法运行时间超过了1s,就应该考虑log(n)的解法了。
|
||||||
|
|
||||||
# 从硬件配置看计算机的性能
|
## 从硬件配置看计算机的性能
|
||||||
|
|
||||||
计算机的运算速度主要看CPU的配置,以2015年MacPro为例,CPU配置:2.7 GHz Dual-Core Intel Core i5 。
|
计算机的运算速度主要看CPU的配置,以2015年MacPro为例,CPU配置:2.7 GHz Dual-Core Intel Core i5 。
|
||||||
|
|
||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
所以我们的程序在计算机上究竟1s真正能执行多少次操作呢?
|
所以我们的程序在计算机上究竟1s真正能执行多少次操作呢?
|
||||||
|
|
||||||
# 做个测试实验
|
## 做个测试实验
|
||||||
|
|
||||||
在写测试程序测1s内处理多大数量级数据的时候,有三点需要注意:
|
在写测试程序测1s内处理多大数量级数据的时候,有三点需要注意:
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ O(nlogn)的算法,1s内大概计算机可以运行 2 * (10^7)次计算,符
|
|||||||
|
|
||||||
至于O(log n)和O(n^3) 等等这些时间复杂度在1s内可以处理的多大的数据规模,大家可以自己写一写代码去测一下了。
|
至于O(log n)和O(n^3) 等等这些时间复杂度在1s内可以处理的多大的数据规模,大家可以自己写一写代码去测一下了。
|
||||||
|
|
||||||
# 完整测试代码
|
## 完整测试代码
|
||||||
|
|
||||||
```CPP
|
```CPP
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -212,7 +212,7 @@ int main() {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# 总结
|
## 总结
|
||||||
|
|
||||||
本文详细分析了在leetcode上做题程序为什么会有超时,以及从硬件配置上大体知道CPU的执行速度,然后亲自做一个实验来看看O(n)的算法,跑一秒钟,这个n究竟是做大,最后给出不同时间复杂度,一秒内可以运算出来的n的大小。
|
本文详细分析了在leetcode上做题程序为什么会有超时,以及从硬件配置上大体知道CPU的执行速度,然后亲自做一个实验来看看O(n)的算法,跑一秒钟,这个n究竟是做大,最后给出不同时间复杂度,一秒内可以运算出来的n的大小。
|
||||||
|
|
||||||
@ -220,17 +220,6 @@ int main() {
|
|||||||
|
|
||||||
这样,大家应该对程序超时时候的数据规模有一个整体的认识了。
|
这样,大家应该对程序超时时候的数据规模有一个整体的认识了。
|
||||||
|
|
||||||
## 其他语言版本
|
|
||||||
|
|
||||||
|
|
||||||
Java:
|
|
||||||
|
|
||||||
|
|
||||||
Python:
|
|
||||||
|
|
||||||
|
|
||||||
Go:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -238,3 +227,4 @@ Go:
|
|||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
所以重新整理的时间复杂度文章,正式和大家见面啦!
|
所以重新整理的时间复杂度文章,正式和大家见面啦!
|
||||||
|
|
||||||
|
# 时间复杂度
|
||||||
|
|
||||||
## 究竟什么是时间复杂度
|
## 究竟什么是时间复杂度
|
||||||
|
|
||||||
**时间复杂度是一个函数,它定性描述该算法的运行时间**。
|
**时间复杂度是一个函数,它定性描述该算法的运行时间**。
|
||||||
@ -145,7 +147,7 @@ O(2 × n^2 + 10 × n + 1000) < O(3 × n^2),所以说最后省略掉常数项
|
|||||||
|
|
||||||
**当然这不是这道题目的最优解,我仅仅是用这道题目来讲解一下时间复杂度**。
|
**当然这不是这道题目的最优解,我仅仅是用这道题目来讲解一下时间复杂度**。
|
||||||
|
|
||||||
# 总结
|
## 总结
|
||||||
|
|
||||||
本篇讲解了什么是时间复杂度,复杂度是用来干什么,以及数据规模对时间复杂度的影响。
|
本篇讲解了什么是时间复杂度,复杂度是用来干什么,以及数据规模对时间复杂度的影响。
|
||||||
|
|
||||||
@ -157,17 +159,6 @@ O(2 × n^2 + 10 × n + 1000) < O(3 × n^2),所以说最后省略掉常数项
|
|||||||
|
|
||||||
如果感觉「代码随想录」很不错,赶快推荐给身边的朋友同学们吧,他们发现和「代码随想录」相见恨晚!
|
如果感觉「代码随想录」很不错,赶快推荐给身边的朋友同学们吧,他们发现和「代码随想录」相见恨晚!
|
||||||
|
|
||||||
## 其他语言版本
|
|
||||||
|
|
||||||
|
|
||||||
Java:
|
|
||||||
|
|
||||||
|
|
||||||
Python:
|
|
||||||
|
|
||||||
|
|
||||||
Go:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -175,3 +166,4 @@ Go:
|
|||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user