除了时间还该看什么(C++)

做性能对比时,除了时间之外还应该记录【0】。

开始练习 →

数据量翻倍数组版慢几倍

把数据量从 100 条加到 200 条,看数组判重的比较次数怎么变。运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #i

开始练习 →

集合版翻倍后慢几倍

同样从 100 条加到 200 条。运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <strin

开始练习 →

数出数组版的比较次数

补全 list_ops:模拟「每加一条都要和已有的挨个比」,返回一共比了多少次。⚠️ 这条路线的 benchmark 都数操作次数而不是计时——次数是确定的,时间每次都不一样。算 100 条的情况。 (本题用 g++ -std=c++17

开始练习 →

数出集合版的比较次数

补全 set_ops:改用集合判重,每条只算一次。同样算 100 条。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

出一份对比数据

补全 report:返回一份对比结果,格式是「数组版次数/集合版次数/倍数」(用 / 隔开,倍数用整除)。算 100 条的情况。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

给代码计时该用哪个时钟

C++ 里给一段代码计时,最该用的时钟是【0】。

开始练习 →

为什么要取中位数

第 1 步:同一段代码测 5 次 第 2 步:有一次被别的程序拖慢了 第 3 步:排序中…… 第 4 步:排序中…… 第 5 步:排序中…… 第 6 步:排序中…… 第 7 步:排好后取正中间那个 12 9 30 11 10 同一段代码测了

开始练习 →

-O2 为什么通常更快

同一份代码用 -O2 编出来的程序通常比 -O0 快,是因为【0】。

开始练习 →

1500 毫秒换算成秒

运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #include <

开始练习 →