7.2-1
令
Θ(n)=cn
,带入递归式可得:
7.2-2
当数组A的所有元素都具有相同值时,此时出现最坏情况,每次划分会出现大小为 0和n−1 的子数组,此时时间复杂度为 Θ(n2) 。
7.2-3
当数组A的所有元素不同,且按降序排列时,那么每次PARTITION操作都会划分出大小为 0和n−1 的两个子数组,出现的是最坏的情况,此时QUICKSORT的时间复杂度为 Θ(n2) 。
7.2-4
假设序列中倒序对有
d
对,那么插入排序的时间复杂度为
7.2-5
当子数组大小小于或等于1的时候为叶子节点,显然最小深度为不等式
nax≤1
的解:
所以最小深度为 −lgn/lga 。
同理,最大深度为不等式 n(1−a)x≤1 的解,为 −lgn/lg(1−a) 。
7.2-6
显然,要产生 1−a:a 划分,则该子数组的最后一个数必须为该数组的第 n(1−a) 大的数;而要产生比 1−a:a 更好的划分,则数组最后一个数必须是 na≤x≤n(1−a) ,因为输入随机,最后一个数在数组中的大小次序概率相等,所以产生比 1−a:a 更好的划分的概率为