对随机排列的 n 个元素,比较归并排序与插入排序的比较次数量级;当 n=10⁶ 时估算两者基本操作次数的比值,并说明常数因子在何种情形下会让插入排序更快。
查看提示
归并排序比较次数约 n log₂ n,插入排序最坏与平均均为 Θ(n²);小 n 或近乎有序输入时常数项主导。
展开分步解答
归并排序约 n log₂ n 次比较,n=10⁶ 时约 2×10⁷;插入排序平均约 n²/4=2.5×10¹¹,两者相差约 10⁴ 量级。插入排序常数小、额外空间为 O(1),且对近乎有序数据为 O(n),故当 n 很小(经验上数十个元素)或输入几乎有序时反而更快,这也是混合排序在小分段切换到插入排序的原因。
结果核验:用递推 T(n)=2T(n/2)+n 展开归并排序恰得 n log₂ n;对 n=64 的小输入实测两种实现的比较计数,可复现插入排序的常数优势,与渐近分析互补。