CLRS 8-5 :平均排序
解答:
a)非递增完全排序
b)2 1 4 3 6 5 8 7 10 9
c)展开题目中的公式,然后消除相同项,即可得到此结论。
d)算法思想:
1.将数组分成k组,即{a[0], a[k], a[2k] ...}, {a[1], a[1+k], a[zk+1] ...}, ..., {a[i], a[i+k], a[i+2k], ...}, ..., {a[k-1], a[2k-1], ...}.
2.然后对每一组用合并排序或者堆排序进行排序,则每一组的时间为t = n/k*lg(n/k),总的时间为nt,即nlg(n/k).
e)由于数组已是k排序的,则可以将数组按d).1的方法分为k组,则每组是排好序的,再用6.5-8
中的方法进行处理,总时间为O(nlgk).
f)不会证明,略。