快速排序递归树到每个叶子为k个元素就结束了,所以高度h=lg(n/k),每层代价cn,所以快速排序时间上限O(nlgn)
快速排序结束后,数组变成(k个元素,a1,k个元素,a2......)的形式
即每k个元素之后,都有一个已经在正确位置上的元素,这些元素为a1,a2,......
其中ai之前的k个元素小于ai,ai之后的k个元素大于ai
快速排序递归树最底层,xk=n,x=n/k,一共有n/k组未排序的元素
按照以上分析,只需要对每k个元素进行插入排序,时间为n/k*O(k2)=O(nk)
所以总时间复杂度为O(nk+nlgn)