改成每次只加一格呢
同样 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 编译。)