轻松的编程学习
首页
题库
学习路径
在线商城
能力地图
下载应用
登录 / 注册
菜单
数出快排的比较次数
👁️ 1 人浏览
💬 0 人评论
❤️ 添加收藏
补全划分那两步,输出 120 种输入里的「最坏比较次数/总和」。
(本题用
g++ -std=c++17 -O0
编译。)
提交你的答案
请登录后提交答案。
去登录
← 120 种输入比较次数总和
最坏输入里就有有序的 →
更多题目
改成"你好,有词"
输出"100 分"
把年龄改成 20
输出学习天数 30
修复:给文字加引号
修复:补上右括号
代码编辑器
语言:
python3
c11
cpp17
Ctrl
+
Enter
运行
👩🏫 AI
▶ 运行代码
重置代码
打印代码
#include <algorithm> #include <iostream> #include <string> #include <vector> using namespace std; void qs_go(const vector<int>& x, int& c) { if (x.size() <= 1) return; int p = x[0]; // 总是拿第一个当枢轴 // TODO: 这一层要把剩下的每个元素和枢轴比一次:c 加上 x.size() - 1 // TODO: 比枢轴小的放进 lo、其余放进 hi,两边各递归一次 (void)p; } int qs_cmp(const vector<int>& a) { int c = 0; qs_go(a, c); return c; } vector<vector<int>> all_perms() { vector<int> p = {0, 1, 2, 3, 4}; vector<vector<int>> out; do { out.push_back(p); } while (next_permutation(p.begin(), p.end())); return out; } int main() { int mx = 0, sum = 0; for (const auto& p : all_perms()) { mx = max(mx, qs_cmp(p)); sum += qs_cmp(p); } cout << mx << "/" << sum << endl; }
本次输入:
输出:
👩🏫
AI
请登录后使用 AI 老师
×
登录后可获得解题思路、提示与错误分析。
去登录
关闭
🎉
恭喜你,回答正确!
系统判定:正确
我知道了
💬 题目评论
提交
全部评论
全部评论