算出翻倍之后的倍数

补全 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 倍

开始练习 →