【发布时间】:2014-12-11 09:35:56
【问题描述】:
在《算法简介》(Corman) 一书中,练习 1.2-2 提出了一个关于比较插入排序和归并排序实现的问题。对于大小为 n 的输入,插入排序以 8n^2 步运行,而合并排序以 64n lg n 步运行;对于 n 的哪些值,插入排序优于合并排序?
虽然我对答案很感兴趣,但我更感兴趣的是如何一步一步找到答案(这样我就可以重复这个过程来比较任何两个给定的算法,如果可能的话)。
乍一看,这个问题似乎类似于在商业微积分中找到盈亏平衡点,这是我 5 年多前上的一门课,但我不确定是否会得到任何帮助。
谢谢
P/S 如果我的标签不正确,这个问题的分类不正确,或者这里滥用了一些其他约定,请将惩罚限制在最低限度,因为这是我第一次发布问题。
【问题讨论】:
-
8n^2=64nlgn的解决方案是n=44。所以对于 43 个或更少的元素使用插入排序,否则使用合并排序 -
@arunmoezhi 数字 8n^2 和 64nlogn 真的成立吗?还是它们只是问题陈述的假设值?
-
@zack 问题说明了这些值。
标签: algorithm sorting time-complexity mergesort insertion-sort