数出双层循环的次数

补全 count_two:两层嵌套、各跑 n 次,返回循环体执行了几次。算 n = 5 的情况——和上一题比一比,这就是 O(n) 和 O(n²) 的差别。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

按下标取一个元素(C++)

从数组里按下标取一个元素,时间复杂度是【0】。

开始练习 →

从头到尾遍历一遍(C++)

把一个长度为 n 的数组从头扫到尾,时间复杂度是【0】。

开始练习 →

每次扔掉一半

第 1 步:在有序的 8 个数里找 40 第 2 步:看中间那个:23 第 3 步:扔掉一半,剩 4 个 第 4 步:看中间那个:31 第 5 步:扔掉一半,剩 2 个 第 6 步:看中间那个:40 第 7 步:找到了 13 15 17 2

开始练习 →

反复两两比较很多轮

相邻两两比较、反复扫很多轮(比如冒泡排序),复杂度是【0】。

开始练习 →

二分找 24 要几步

在排好序的 [13, 15, 17, 23, 24] 里二分查找 24。运行下面这段程序,它数的是「比了几次」: #include <iostream> #include <string> #include <

开始练习 →

从头挨个找 24 要几步

同一个数组,改成从头挨个找 24。运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std

开始练习 →

给一段描述判出复杂度

补全 level:按描述返回复杂度。四条对应关系:按下标取 → O(1);扫一遍 → O(n);每次扔一半 → O(log n);两层嵌套 → O(n²);表里没有的返回「说不好」。这次问的是「两层嵌套」。 (本题用 g++ -std=c+

开始练习 →

自己数一遍二分要几步

补全 bsearch_steps:二分查找,返回一共比较了几次。在 [13, 15, 17, 23, 24] 里找 13。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

C++ 一秒能做多少次运算

第 1 步:每秒大约 1 亿次简单运算 第 2 步:n≤20:算一算不超 1 亿 第 3 步:n≤500:算一算不超 1 亿 第 4 步:n≤5000:算一算不超 1 亿 第 5 步:n≤10^6:算一算不超 1 亿 第 6 步:n 越大,

开始练习 →