算法导论第三版习题7.2

7.2-1

Θ(n)=cn ,带入递归式可得:

T(n)=T(n1)+Θ(n)=T(n1)+cn=ci=1ni=cn(n+1)2=Θ(n2)

7.2-2

当数组A的所有元素都具有相同值时,此时出现最坏情况,每次划分会出现大小为 0n1 的子数组,此时时间复杂度为 Θ(n2)

7.2-3

当数组A的所有元素不同,且按降序排列时,那么每次PARTITION操作都会划分出大小为 0n1 的两个子数组,出现的是最坏的情况,此时QUICKSORT的时间复杂度为 Θ(n2)

7.2-4

假设序列中倒序对有 d 对,那么插入排序的时间复杂度为Θ(n+d)。由于该序列几乎为有序序列,所以 d 非常小,插入排序时间复杂度接近Θ(n);而用QUICKSORT时,因为序列几乎有序,所以会经常出现空子数组,所以QUICKSORT性能会很不好,时间复杂度接近 Θ(n2)

7.2-5

当子数组大小小于或等于1的时候为叶子节点,显然最小深度为不等式 nax1 的解:

nax1ax1nxlga1n=lgn/lga

所以最小深度为 lgn/lga
同理,最大深度为不等式 n(1a)x1 的解,为 lgn/lg(1a)

7.2-6

显然,要产生 1a:a 划分,则该子数组的最后一个数必须为该数组的第 n(1a) 大的数;而要产生比 1a:a 更好的划分,则数组最后一个数必须是 naxn(1a) ,因为输入随机,最后一个数在数组中的大小次序概率相等,所以产生比 1a:a 更好的划分的概率为

n(1a)nan=12a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值