改成每次只加一格呢

同样 16 次 push_back,但这次满了只把容量加一: #include <algorithm> #include <iostream> #include <string> #include <

开始练习 →

把搬移次数数出来

补全扩容那三步,输出「总搬移个数/单次最多搬几个」。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

两种扩容策略总账差多少

「翻倍」和「每次加一」两种策略,在 16 次 push_back 上的总搬移个数一起输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

规模翻一倍两边各涨多少

把 n 从 16 涨到 32,两种策略的总搬移各变成多少?按 翻倍16 / 翻倍32 / 加一16 / 加一32 的顺序输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

交付单次贵平摊便宜

摊还分析的结论有两半,缺一半就说不清。把两半各验一次,再验它们同时成立,输出如 过/过/过。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

随机化解决的是什么麻烦

第 1 步:已经排好序的 6 个数 第 2 步:取第一个当枢轴:左边空 第 3 步:取第一个当枢轴:左边空 第 4 步:取第一个当枢轴:左边空 第 5 步:取第一个当枢轴:左边空 第 6 步:每层只少一个:很深 1 2 3 4 5 6 快排

开始练习 →

期望和平均情况差在哪

随机快排的期望复杂度,和普通快排的平均情况复杂度,区别是【0】。

开始练习 →

固定取第一个最坏和最好

五个元素的全部 120 种排列,快排总是拿第一个当枢轴,比较次数的最大值和最小值: #include <algorithm> #include <iostream> #include <string> #

开始练习 →

120 种输入比较次数总和

把全部 120 种排列的比较次数加总: #include <algorithm> #include <iostream> #include <string> #include <vector>

开始练习 →

数出快排的比较次数

补全划分那两步,输出 120 种输入里的「最坏比较次数/总和」。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →