轻松的编程学习
首页
题库
学习路径
在线商城
能力地图
下载应用
登录 / 注册
菜单
🔴 有输入低于下界,这矛盾吗
👁️ 0 人浏览
💬 0 人评论
❤️ 添加收藏
下界算出来是 7。数一数 120 种输入里,归并排序用了
不到 7 次
就排完的有几种,再报出最坏的那一档。
提交你的答案
请登录后提交答案。
去登录
← 两种排序的最坏比较次数
归并离理论极限还差几次 →
更多题目
让程序说出"你好"
让程序欢迎你
哪个命令能显示内容
哪里是指令,哪里是结果
让程序说出你的名字
这个程序会显示什么
代码编辑器
语言:
python3
c11
cpp17
Ctrl
+
Enter
运行
👩🏫 AI
▶ 运行代码
重置代码
打印代码
import math from itertools import permutations def merge_cmp(a): """归并排序,返回比较次数""" c = 0 def go(x): nonlocal c if len(x) <= 1: return x m = len(x) // 2 L, Rr = go(x[:m]), go(x[m:]) out, i, j = [], 0, 0 while i < len(L) and j < len(Rr): c += 1 if L[i] <= Rr[j]: out.append(L[i]); i += 1 else: out.append(Rr[j]); j += 1 return out + L[i:] + Rr[j:] go(list(a)) return c def ins_cmp(a): """插入排序,返回比较次数""" a = list(a); c = 0 for i in range(1, len(a)): j, x = i - 1, a[i] while j >= 0: c += 1 if a[j] <= x: break a[j + 1] = a[j]; j -= 1 a[j + 1] = x return c P = list(permutations(range(5))) lower = math.ceil(math.log2(math.factorial(5))) # TODO: 数一数有多少种输入,归并用的比较次数**低于**这个下界 below = -1 # TODO: 最坏的那一档是多少次 worst = -1 print(str(lower) + "/" + str(below) + "/" + str(worst))
本次输入:
输出:
👩🏫
AI
请登录后使用 AI 老师
×
登录后可获得解题思路、提示与错误分析。
去登录
关闭
🎉
恭喜你,回答正确!
系统判定:正确
我知道了
💬 题目评论
提交
全部评论
全部评论