快速排序和插入排序混合预期运行时间

Avi*_*hen 5 algorithm complexity-theory quicksort insertion-sort clrs

我是自学CLRS第3版,这是我遇到的更难的问题之一,以及它作为一项服务给所有人的答案.

7.4-5 当输入"近似"排序时,我们可以利用插入排序的快速运行时间来改善快速排序的运行时间.在使用少于k元素的子数组上调用quicksort时,让它只返回而不对子数组进行排序.在对quicksort返回顶级调用之后,对整个数组运行插入排序以完成排序过程.认为这种排序算法在O(nk+nlg(n/k))预期的时间内运行.我们应该如何k在理论和实践中选择?

Ank*_*ush 3

如果nlgn > nk + nlog(n/k)你得到eval方程式log k > k.这是不可能的.因此在理论上它是不可能的.但在实践中,插入排序和快速排序涉及不变因素.看看这个pdf中讨论的解决方案.您可能想要更新您的答案..