众所周知,快速排序法作为当下最优秀的排序法之一,在面对小数组时颇为无力,此时往往采用插入排序法。
本文讨论两个问题:
1.证明:当分割得到的子数组元素数量小于等于K时进行插入排序法,其时间复杂度为
O(nK+nlgn/k)
2.对k的取值进行一定的估算。
本文做以下假设:
1.lgn其实是以2为底的对数
2.本文实际上是对《算法导论》7.4-5习题的解答,所以其中的符号均来自《算法导论》,并假设读者对《算法导论》相关章节有必要的了解,本文涉及到《算法导论》中的内容包括:
1.快速排序法
2.附录A
本题在官方给出的答案中并没有相应的解答,作者能力有限,尽力提出自己的见解,希望能为同样奋斗在算法中的通道做出些许帮助,如有数学上不严谨或者谬误之处,非常希望您能指出。
但更多的,对于k的取值,应该在实际中进行试验,个人试验结果,取7-10比较合适。
网友评论