算出翻倍之后的倍数
补全 grow:返回数据量从 n 翻到 2n 时,一个 O(n²) 算法的操作数变成几倍(整除)。算 n = 100 的情况。 (本题用 g++ -std=c++17 -O0 编译。)
同规模下两种做法各几步
补全 compare:返回「暴力操作数/前缀和操作数/倍数」(用 / 隔开)。算 n=1000、m=1000。 (本题用 g++ -std=c++17 -O0 编译。)
数据多大时 B 才反超 A
算法 A 是 O(n²) 但常数很小(操作数正好是 n × n);算法 B 是 O(n) 但常数很大(操作数是 100 × n)。补全 crossover:找出最小的 n,使得 B 的操作数严格小于 A。——量级更优不等于任何规模下都更快。
差几十倍说明什么
第 1 步:同一段 O(n²) 代码实测 第 2 步:n=1000 两边各测一次 第 3 步:n=2000 两边各测一次 第 4 步:n=4000 两边各测一次 第 5 步:同一行:差了 40 倍 第 6 步:同一列:每次都 ×4 n C+
翻倍时两边各变几倍
n 翻倍,C++ 和 Python 3 跑同一个 O(n²) 算法,耗时各自大约【0】。
chrono 计时取的是什么
用 std::chrono 计时,得到的是【0】。
两种语言差了几倍
同一段代码实测:C++ 用了 20 毫秒,Python 3 用了 900 毫秒。运行下面这段程序: #include <iostream> #include <string> #include <vector&
数据翻倍后耗时变几倍
同一个 O(n²) 程序,n = 1000 时测得 4 毫秒,n = 2000 时测得 16 毫秒。运行下面这段程序: #include <iostream> #include <string> #include &
补全:毫秒换成秒
补全:用 std::chrono 把 2500 毫秒换算成整秒数(duration_cast 会截掉小数部分)。 (本题用 g++ -std=c++17 -O0 编译。)
补全:各自增长了几倍
三组实测(n = 1000 / 2000 / 4000):C++ 分别 5、20、80 毫秒,Python 3 分别 200、800、3200 毫秒。补全 growth:返回最后一次相对前一次变成了几倍,输出「C++ 倍数/Python 倍