实现 add:判重加保序
补全 add:用集合判重、数组记顺序,没见过才追加。六个词全加完之后,输出记下来的第二个词。 (本题用 g++ -std=c++17 -O0 编译。)
实现词频统计
补全 word_count:返回一个「词 → 次数」的 map。补全后输出苹果出现了几次。 (本题用 g++ -std=c++17 -O0 编译。)
实现 top:出现最多的是哪个
补全 top_word:返回出现次数最多的那个词。 (本题用 g++ -std=c++17 -O0 编译。)
三个操作串起来验一遍
三个函数的框架都写好了,补全 dedup 和 top_word 的函数体,然后跑三条检查:去重之后剩 3 个、苹果出现 3 次、出现最多的是苹果。三条全过输出 三项通过,否则输出 有失败。 (本题用 g++ -std=c++17 -O0 编
两种做法对比最要紧的是
第 1 步:数一数两种判重各比几次 第 2 步:n = 10 时 第 3 步:n = 100 时 第 4 步:n = 200 时 第 5 步:量翻倍:一个翻四倍一个翻倍 n=10 n=100 n=200 线性 集合 45 10 4950 1
只跑一次就下结论
计时只跑一次就下结论,问题是【0】。
除了时间还该看什么(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